dns
unknown
plain_text
4 years ago
1.2 kB
4
Indexable
#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <netdb.h> int main(int argc, char* argv[]) { if (argc < 2) { printf("Provide valid IPv4 or IPv6 address\n"); return EXIT_FAILURE; } struct sockaddr_in sa; int res = inet_pton(AF_INET, argv[1], & sa.sin_addr); switch (res) { case 0: printf("Not a valid IPv4 address.\n"); case -1: if (res == -1) { printf("\nError(%s)\n", strerror(errno)); } int n_res = inet_pton(AF_INET6, argv[1], & sa.sin_addr); switch (n_res) { case 0: printf("Not a valid IPv6 address.\n"); case -1: if (n_res == -1) { printf("\nError(%s)\n", strerror(errno)); } return EXIT_FAILURE; case 1: sa.sin_family = AF_INET6; } case 1: sa.sin_family = AF_INET; } char node[NI_MAXHOST]; memset(node, 0, NI_MAXHOST); res = getnameinfo((struct sockaddr * ) & sa, sizeof sa, node, sizeof node, NULL, 0, 0); if (res) { printf("%s\n", gai_strerror(res)); return EXIT_FAILURE; } printf("\nProvided IP: %s\n", argv[1]); printf("Hostname: %s\n", node); return EXIT_SUCCESS; }
Editor is loading...