使用gethostbyname()
并不总是返回IP地址。相反,它会再次返回相同的主机名。这是什么原因?起初我以为这是一个虚假的主机名。然后在一个试图抓住一些机器人的功能中使用它,它使用假的主机名捕获baidu,我测试的是假的。
示例:
echo gethostbyname('baiduspider-123-125-71-12.crawl.baidu.com');
返回
baiduspider-123-125-71-12.crawl.baidu.com
但
echo gethostbyname('201-35-178-134.cslce701.dsl.brasiltelecom.net.br');
返回
201.35.178.134
任何理解这一点的帮助都会更好。
答案 0 :(得分:2)
查看文档: 返回IPv4地址或包含失败时未修改主机名的字符串。
如果找不到域或没有相应的A-Record,则返回未修改的主机名。
在你的例子中,百度没有为他们的机器人设置A-Record,在Linux中,host
命令打印出:
Host baiduspider-123-125-71-12.crawl.baidu.com not found: 3(NXDOMAIN)