我在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