2012-02-01 50 views
4

我在PHP类有以下命令:PHP是否有内置的exec(“nslookup”)替代方案?

@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output); 

这不我由于安全限制(execescapeshellcmd从php.ini中禁用)服务器上运行。有没有别的方法不依赖exec

+1

备注:对于单个参数,您应该使用'escapeshellarg'而不是'escapeshellcmd'。 – Wrikken 2012-02-01 21:51:14

回答

4

您可以使用dns_get_record()

http://www.php.net/dns_get_record

+0

*在PHP 5.3及以上(也就是说,它可以在5.3以上的Windows上工作 - Linux平台自5.0以来已经拥有它) – 2012-02-01 21:43:07

+0

@Justin不正确。它自5.3以来就存在于Windows中 – Cheery 2012-02-01 21:43:44

0

我用的是内置gethostbyname($hostname)为:它传递一个域名,并返回如果能够找到IP或未修改的输入字符串,否则。 gethostbyaddr($ip)是相反的。

参见:
- gethostbyname文档
- gethostbyaddr文档

0

的PHP dns_get_record()功能做一个简单的方法。但是,请注意,如果用户更改其主机文件,dns_get_record()将返回主机文件中设置的值,而不查询授权DNS服务器。

相关问题