PHP简单的whois脚本html表单


PHP simple whois script html form

我只是在PHP中创建了一个简单的工具,它在linux中使用内置的whois命令,然后将响应返回给用户。我所尝试的一切要么都失败了,要么我在某个地方搞砸了。

<html>
<body>
<form method="POST" action="">
    <input type="text" name="cmd1">
    <input type="submit" value="Submit">
</form>
</body>
</html>
<?php
$cmd = $_POST['cmd1'];
echo "<pre>".shell_exec('whois ', $cmd)."</pre>";
?>

对我来说什么都没发生,记录在案,我是PHP的新手,我只想要一点专业知识。我是唯一一个将要使用这个脚本的人。非常感谢。

您需要检查是否提交了POST变量,这样在第一次显示表单时就不会尝试运行whois。您还应该转义参数以防止命令注入。

您需要在HTML的<body>中显示结果。

另一个问题是:您需要将'whois '与参数连接起来,而不是将它们作为单独的参数传递给shell_exec(它只需要一个参数,并忽略额外的参数,所以您只是在执行命令whois时没有域)。

<html>
<body>
<form method="POST" action="">
    <input type="text" name="cmd1">
    <input type="submit" value="Submit">
</form>
<?php
if (isset($_POST['cmd1'])) {
    $cmd = $_POST['cmd1'];
    echo "<pre>".shell_exec('whois ' . escapeshellarg($cmd))."</pre>";
}
?>
</body>
</html>

您也可以使用Net_Whois:

安装:

pear install Net_Whois

用法:

<?php
require_once "Net/Whois.php";
$server = "whois.denic.de";
$query  = isset($_POST['cmd1']) ? $_POST['cmd1']  : 'phpcrawler.de'; 
$whois = new Net_Whois;
$data = $whois->query($query, $server);
echo $data;
?>