[英]shell_exec empty response for nslookup query
我正在使用Ubuntu和xampp,正在嘗試通過nslookup gmail.com
執行命令。 PHP,但是我得到的回應是空的。 當我在Windows機器以及運行CentOS的Linux服務器上嘗試時,同樣的事情起作用了。
當我直接在終端上運行命令時,FYI nslookup gmail
會給出正確的響應,問題僅出在我嘗試通過它執行時。 PHP。
我什至嘗試做一個which nslookup
然后$nslookup = shell_exec("/usr/bin/nslookup $server");
沒有幫助,但響應是空白。
雖然請注意 ,從PHP執行命令whoami
(在以下代碼中已對此進行了注釋)確實給出了daemon
的正確響應
我是Ubuntu的新手,因此提供一點幫助將是很大的。
<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;
$nslookup = shell_exec("nslookup $server");
// $nslookup = shell_exec("whoami");
print_r($nslookup);
?>
通過網絡瀏覽器執行時,php腳本以特權較低的www用戶(在您的情況下為守護程序)執行。 它沒有足夠的特權來執行命令nslookup
。 我不建議您增加www用戶的特權,這是安全隱患。 作為替代方法,嘗試使用gethostbyname php函數。 它返回與給定Internet主機名相對應的IPv4地址。
<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;
$ip = gethostbyname($server);
echo $ip;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.