我在PHP类有以下命令:PHP是否有内置的exec(“nslookup”)替代方案?
@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output);
这不我由于安全限制(exec
和escapeshellcmd
从php.ini中禁用)服务器上运行。有没有别的方法不依赖exec
?
我在PHP类有以下命令:PHP是否有内置的exec(“nslookup”)替代方案?
@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output);
这不我由于安全限制(exec
和escapeshellcmd
从php.ini中禁用)服务器上运行。有没有别的方法不依赖exec
?
您可以使用dns_get_record()
:
*在PHP 5.3及以上(也就是说,它可以在5.3以上的Windows上工作 - Linux平台自5.0以来已经拥有它) – 2012-02-01 21:43:07
@Justin不正确。它自5.3以来就存在于Windows中 – Cheery 2012-02-01 21:43:44
我用的是内置gethostbyname($hostname)
为:它传递一个域名,并返回如果能够找到IP或未修改的输入字符串,否则。 gethostbyaddr($ip)
是相反的。
参见:
- gethostbyname文档
- gethostbyaddr文档
的PHP dns_get_record()
功能做一个简单的方法。但是,请注意,如果用户更改其主机文件,dns_get_record()
将返回主机文件中设置的值,而不查询授权DNS服务器。
备注:对于单个参数,您应该使用'escapeshellarg'而不是'escapeshellcmd'。 – Wrikken 2012-02-01 21:51:14