2012-02-01 81 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服務器。

相關問題