当前位置: 技术问答>linux和unix
关于在linux下"通过ip地址获取它的主机名"谁有比较好的函数或例子,谢谢,加分!
来源: 互联网 发布时间:2015-09-24
本文导语: 准确,快速 最好可以: 不要阻塞 | gethostbyaddr 库函数 用法: retcode = gethostbyaddr ( addr, len, type ) ; 说明: gethostbyaddr 搜索关于某个给定IP 地址的主机信息。 参数: l addr 类型为&char,含...
准确,快速
最好可以:
不要阻塞
最好可以:
不要阻塞
|
gethostbyaddr 库函数
用法:
retcode = gethostbyaddr ( addr, len, type ) ;
说明:
gethostbyaddr 搜索关于某个给定IP 地址的主机信息。
参数:
l addr 类型为&char,含义是指向一个数组的指针,该数组含有一个主机地址(如IP地址)
l len 类型为int,含义是一个整数,它给出地址长度(IP 地址长度是4)
l type 类型为int,含义是一个整数,它给出地址类型(IP 地址类型为AF_INET)
返回值:
gethostbyaddr 如果成功,返回一个hostent 结构的指针。如果发生错误,返回0 。
hostent 结构声明如下:
struct hostent
{ /* 一个主机项 */
char h_name ; /* 正式主机名 */
char h_aliases[] ; /* 其它别名列表 */
int h_addrtype ; /* 主机地址类型 */
int h_length ; /* 主机地址长度 */
char **h_addr_list /* 主机地址列表 */.
} ;
用法:
retcode = gethostbyaddr ( addr, len, type ) ;
说明:
gethostbyaddr 搜索关于某个给定IP 地址的主机信息。
参数:
l addr 类型为&char,含义是指向一个数组的指针,该数组含有一个主机地址(如IP地址)
l len 类型为int,含义是一个整数,它给出地址长度(IP 地址长度是4)
l type 类型为int,含义是一个整数,它给出地址类型(IP 地址类型为AF_INET)
返回值:
gethostbyaddr 如果成功,返回一个hostent 结构的指针。如果发生错误,返回0 。
hostent 结构声明如下:
struct hostent
{ /* 一个主机项 */
char h_name ; /* 正式主机名 */
char h_aliases[] ; /* 其它别名列表 */
int h_addrtype ; /* 主机地址类型 */
int h_length ; /* 主机地址长度 */
char **h_addr_list /* 主机地址列表 */.
} ;
|
目前好像没有多少 dns 服务器 提供反向域名解析吧?
gz...
gz...
|
不阻塞是不现实的,因为DNS查询要求负责发送和接收报文。
你可以使用 resolver类函数进行自己的分析
使用 man resolver可以得到一些帮助
欢迎访问我的个人网站 www.linuxc.net
你可以使用 resolver类函数进行自己的分析
使用 man resolver可以得到一些帮助
欢迎访问我的个人网站 www.linuxc.net