Php nslookup查询的shell\u exec空响应
我正在使用Ubuntu和xampp,我正在尝试通过执行命令Php nslookup查询的shell\u exec空响应,php,linux,ubuntu,networking,shell-exec,Php,Linux,Ubuntu,Networking,Shell Exec,我正在使用Ubuntu和xampp,我正在尝试通过执行命令nslookup gmail.comvia。PHP,但我得到一个空响应。当我在windows机器上以及在运行CentOS的Linux服务器上进行尝试时,同样的事情也起了作用 仅供参考,当我直接在终端上运行命令时,nslookup gmail会给出正确的响应,问题只是当我试图通过。php 我甚至试着做了一个查找,然后 $nslookup=shell_exec(“/usr/bin/nslookup$server”)没有帮助,但是相同的空白响应
nslookup gmail.com
via。PHP,但我得到一个空响应。当我在windows机器上以及在运行CentOS的Linux服务器上进行尝试时,同样的事情也起了作用
仅供参考,当我直接在终端上运行命令时,nslookup gmail会给出正确的响应,问题只是当我试图通过。php
我甚至试着做了一个查找
,然后
$nslookup=shell_exec(“/usr/bin/nslookup$server”)代码>没有帮助,但是相同的空白响应
尽管注意当从PHP执行命令whoami
时(我在下面的代码中已经对其进行了注释),该命令确实给出了守护进程的正确响应
我对Ubuntu很陌生,所以一点帮助就好了
<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;
$nslookup = shell_exec("nslookup $server");
// $nslookup = shell_exec("whoami");
print_r($nslookup);
?>
当您通过web浏览器执行时,php脚本将作为权限较低的www用户(在您的情况下为守护进程)执行。它没有足够的权限执行命令nslookup
。我不建议增加www用户的权限,这是一种安全风险。另一种方法是尝试php函数。它返回与给定Internet主机名对应的IPv4地址
<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;
$ip = gethostbyname($server);
echo $ip;
?>
您能告诉我如何增加www用户的权限吗?为什么不使用gethostbyname?他们都做同样的事。