Linux下用C實現(xiàn)域名到IP的轉(zhuǎn)換(域名解析)
只需調(diào)用一個函數(shù)即可gethostbyname(),gethostbyname()返回對應(yīng)于給定主機(jī)名的包含主機(jī)名字和地址信息的hostent結(jié)構(gòu)指針。結(jié)構(gòu)的聲明與gethostaddr()中一致。下面是函數(shù)原型:
Windows平臺下
#include <winsock2.h>
struct hostent FAR *PASCAL FAR gethostbyname(const char
FAR * name);
name:指向主機(jī)名的指針。
Linux平臺下
#include <netdb.h>
struct hostent *gethostbyname(const char * hostname);
返回:非空指針——成功,空指針——出錯,同時設(shè)置h_errno
C語言程序?qū)崿F(xiàn):
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h>int main(int argc, char *argv[]) { struct hostent *h; char hostname[40]; printf("請輸入域名\n"); scanf("%s",hostname); getchar(); if((h=gethostbyname(hostname))==NULL) { fprintf(stderr,"不能得到IP\n"); exit(1); } printf("HostName :%s\n",h->h_name); printf("IP Address :%s\n",inet_ntoa(*((struct in_addr *)h->h_addr))); return EXIT_SUCCESS; }
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。