summaryrefslogtreecommitdiffstats
path: root/core/modules/rdns/rdns.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/rdns/rdns.c')
-rw-r--r--core/modules/rdns/rdns.c28
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;
+}
+