Linux下用C實現域名到IP的轉換(域名解析)
只需調用一個函數即可gethostbyname(),gethostbyname()返回對應于給定主機名的包含主機名字和地址信息的hostent結構指針。結構的聲明與gethostaddr()中一致。下面是函數原型:
Windows平臺下
#include <winsock2.h>
struct hostent FAR *PASCAL FAR gethostbyname(const char
FAR * name);
name:指向主機名的指針。
Linux平臺下
#include <netdb.h>
struct hostent *gethostbyname(const char * hostname);
返回:非空指針——成功,空指針——出錯,同時設置h_errno
C語言程序實現:
#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;
}*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。











