簡體   English   中英

shell_exec對nslookup查詢的響應為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM