其实获取域名对应服务器的IP很简单,我们PHP已经内置的函数直接获取
gethostbyname();
用法也很简单
$ip = gethostbyname($yuming);
这样就可以直接过去对应域名下的服务器IP地址了。
分类:
函数定义:struct hostent *gethostbyname(const char *name)
函数说明:gethostbyname()会返回一个hostent结构,参数name可以为一个主机名或IPv4/IPv6的IP地址。
hostent结构说明如下:
struct hostent{ char *h_name; /*正式的主机名称*/ char **h_aliases; /* 指向主机名称的其他别名 */ int h_addrtype; /* 地址的型态, 通常是AF_INET */ int h_length; /*地址的长度*/ char **h_addr_list; /* 从域名服务器取得该主机的所有地址 */ };
返回值 :成功返回hostent结构指针,失败则返回NULL指针, 错误原因存于h_errno变量中
错误代码:
HOST_NOT_FOUND 找不到指定的主机
NO_ADDRESS 该主机有名称却无IP地址
NO_RECOVERY 域名服务器有错误发生
TRY_AGAIN 请再调用一次
实例:
{ char IP[32]; in_addr addr; char szHostName[]="www.dlut.edu.cn"; struct hostent *pHost; pHost=gethostbyname(szHostName); memcpy(&addr.s_un.s_addr,pHost->h_addr_list[0],pHost->h_length); IP=inet_ntoa(addr); }