diff options
Diffstat (limited to 'core/modules/rdns/rdns.c')
-rw-r--r-- | core/modules/rdns/rdns.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/modules/rdns/rdns.c b/core/modules/rdns/rdns.c new file mode 100644 index 00000000..218f7400 --- /dev/null +++ b/core/modules/rdns/rdns.c @@ -0,0 +1,28 @@ +#include <stdio.h> +#include <errno.h> +#include <netdb.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +int main(int argc, char *argv[]) +{ + if (argc != 2) { + fprintf(stderr,"usage: %s <IPADDRESS>\n", argv[0]); + return 1; + } + + struct hostent *he; + struct in_addr ipv4addr; + struct in6_addr ipv6addr; + + inet_pton(AF_INET, argv[1], &ipv4addr); + he = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET); + if (he == NULL) return 2; + if (he->h_name == NULL) return 3; + printf("%s\n", he->h_name); + + return 0; +} + |