blob: 107d29f03f19aa736f4b287ab85edd88de82913a [file] [log] [blame]
William A. Kennington III7d6fa422021-02-08 17:04:02 -08001#include <arpa/inet.h>
2#include <stdio.h>
3
4int main(int argc, char* argv[])
5{
6 if (argc < 1)
7 {
8 return 1;
9 }
10 if (argc != 2)
11 {
12 fprintf(stderr, "Usage: %s <ip address>\n", argv[0]);
13 return 1;
14 }
15
16 union
17 {
18 struct in_addr in;
19 struct in6_addr in6;
20 } buf;
21 int af = AF_INET6;
22 if (inet_pton(af, argv[1], &buf) != 1)
23 {
24 af = AF_INET;
25 if (inet_pton(af, argv[1], &buf) != 1)
26 {
27 fprintf(stderr, "Invalid IP Address: %s\n", argv[1]);
28 return 2;
29 }
30 }
31
32 char str[INET6_ADDRSTRLEN];
33 if (inet_ntop(af, &buf, str, sizeof(str)) == NULL)
34 {
35 return 1;
36 }
37
38 printf("%s\n", str);
39 return 0;
40}