#include <sys/socket.h> /* for AF_INET */
struct hostent *gethostbyaddr(const void *addr,
socklen_t len, int type);
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc, char *argv[])
{
struct hostent *he;
int i;
strlen(argv[1]);
struct in_addr my_addr;
my_addr.s_addr = inet_addr(argv[1]);
he = gethostbyaddr(&my_addr, sizeof(struct in_addr), AF_INET);
if (he != NULL)
{
printf("%s\n",he->h_name);
} else {
printf("Can not supoort reverse DNS query.\n");
}
return 0;
}
# ./gethostbyaddr 149.20.20.133
pub1.kernel.org
# dig @8.8.8.8 -x 149.20.20.133
; <<>> DiG 9.7.0-P1 <<>> @8.8.8.8 -x 149.20.20.133
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38131
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;133.20.20.149.in-addr.arpa. IN PTR
;; ANSWER SECTION:
133.20.20.149.in-addr.arpa. 1167 IN CNAME 133.128-27.20.20.149.in-addr.arpa.
133.128-27.20.20.149.in-addr.arpa. 1169 IN PTR pub1.kernel.org.
;; Query time: 95 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jun 8 00:35:04 2012
;; MSG SIZE rcvd: 98
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |