1 /** @file 2 Translate the network name into an IP address 3 4 Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials are licensed and made available under 6 the terms and conditions of the BSD License that accompanies this distribution. 7 The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php. 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 **/ 13 #include <errno.h> 14 #include <netdb.h> 15 #include <string.h> 16 #include <Uefi.h> 17 #include <unistd.h> 18 19 #include <Library/DebugLib.h> 20 #include <Library/UefiLib.h> 21 22 #include <sys/socket.h> 23 24 char mBuffer[65536]; 25 26 27 /** Translate the network name into an IP address 28 29 @param[in] Argc The number of arguments 30 @param[in] Argv The argument value array 31 32 @retval 0 The application exited normally. 33 @retval Other An error occurred. 34 **/ 35 int 36 main ( 37 IN int Argc, 38 IN char **Argv 39 ) 40 { 41 UINT8 * pIpAddress; 42 struct netent * pNetwork; 43 44 DEBUG (( DEBUG_INFO, 45 "%a starting\r\n", 46 Argv[0])); 47 48 // Determine if the network name is specified 49 if ( 1 == Argc ) { 50 Print ( L"%a <network name>\r\n", Argv[0]); 51 } 52 else { 53 // Translate the net name 54 pNetwork = getnetbyname ( Argv[1]); 55 if ( NULL == pNetwork ) { 56 Print ( L"ERROR - network not found, errno: %d\r\n", errno ); 57 } 58 else { 59 pIpAddress = (UINT8 *)(UINTN)&pNetwork->n_net; 60 Print ( L"%a: Type %d, %d.%d.%d.%d\r\n", 61 pNetwork->n_name, 62 pNetwork->n_addrtype, 63 pIpAddress[0], 64 pIpAddress[1], 65 pIpAddress[2], 66 pIpAddress[3]); 67 } 68 } 69 // All done 70 return errno; 71 } 72