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
main(IN int Argc,IN char ** Argv)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