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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM