从 ping 命令隐藏 'help' 菜单
Hiding the 'help' menu from the ping command
我目前正在尝试通过 PHP ping windows XP 中的主机。目前,我能够这样做,但是每当我尝试从我的机器 ping 主机时 'help' 一直显示,所以我想知道是否有办法隐藏 'help' 菜单。
这是我在 XP
上能够 运行 的代码
<br><input type='text' name='ip2'>
<input type='submit' value='ping'>
<?php
$ip= "";
$status="";
$output="";
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if($_SERVER["REQUEST_METHOD"] =="POST"){
if(empty($_POST["ip2"])){
echo "IP must not be empty!";
} else{
$ip=test_input($_POST["ip2"]);
}
}
$output=shell_exec('ping ' .$ip. '');
echo"<pre>$output</pre>";
?>
提前致谢!
没有办法压制帮助。它不应该在 运行ning 命令时显示,除非命令 运行 没有参数。更多:https://technet.microsoft.com/en-us/library/cc737478%28v=ws.10%29.aspx
这是 运行 您正在做的事情的一种方法:
<br />
<input type='text' name='ip2' />
<input type='submit' value='ping' />
<?php
$ip= "";
$status="";
$output="";
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if(!isset($_POST['ip2'])){
echo "IP must not be empty!";
} else {
if(empty($_POST["ip2"])){
echo "IP must not be empty!";
} else{
$ip=test_input($_POST["ip2"]);
$output=shell_exec("ping $ip\r\n");
echo"<pre>$output</pre>";
}
}
?>
这确保在执行 ping
.
之前满足所有条件
如果这仍然执行并显示帮助文本,我们可以查看单词和行(使用 explode()
或 strpos()
)并查看 Usage:
是否存在于 $output
.看起来像:
$output=shell_exec('ping ' .$ip. '');
if(stripos($output, "usage:") === false){
echo "<pre>$output</pre>";
} else {
$lines = explode("\r\n", output); // Explode output by end of line
echo "<pre>";
$suppress = true;
for($i=0;$i<count($lines);$i++){
if(stripos($lines[$i], "pinging") === true){
// 1st line of ping response: "Pinging ..."
$supress = false;
}
if(!$supress){
echo $lines[$i] . "\r\n";
}
}
echo "</pre>\r\n";
}
我目前正在尝试通过 PHP ping windows XP 中的主机。目前,我能够这样做,但是每当我尝试从我的机器 ping 主机时 'help' 一直显示,所以我想知道是否有办法隐藏 'help' 菜单。
这是我在 XP
上能够 运行 的代码<br><input type='text' name='ip2'>
<input type='submit' value='ping'>
<?php
$ip= "";
$status="";
$output="";
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if($_SERVER["REQUEST_METHOD"] =="POST"){
if(empty($_POST["ip2"])){
echo "IP must not be empty!";
} else{
$ip=test_input($_POST["ip2"]);
}
}
$output=shell_exec('ping ' .$ip. '');
echo"<pre>$output</pre>";
?>
提前致谢!
没有办法压制帮助。它不应该在 运行ning 命令时显示,除非命令 运行 没有参数。更多:https://technet.microsoft.com/en-us/library/cc737478%28v=ws.10%29.aspx
这是 运行 您正在做的事情的一种方法:
<br />
<input type='text' name='ip2' />
<input type='submit' value='ping' />
<?php
$ip= "";
$status="";
$output="";
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if(!isset($_POST['ip2'])){
echo "IP must not be empty!";
} else {
if(empty($_POST["ip2"])){
echo "IP must not be empty!";
} else{
$ip=test_input($_POST["ip2"]);
$output=shell_exec("ping $ip\r\n");
echo"<pre>$output</pre>";
}
}
?>
这确保在执行 ping
.
如果这仍然执行并显示帮助文本,我们可以查看单词和行(使用 explode()
或 strpos()
)并查看 Usage:
是否存在于 $output
.看起来像:
$output=shell_exec('ping ' .$ip. '');
if(stripos($output, "usage:") === false){
echo "<pre>$output</pre>";
} else {
$lines = explode("\r\n", output); // Explode output by end of line
echo "<pre>";
$suppress = true;
for($i=0;$i<count($lines);$i++){
if(stripos($lines[$i], "pinging") === true){
// 1st line of ping response: "Pinging ..."
$supress = false;
}
if(!$supress){
echo $lines[$i] . "\r\n";
}
}
echo "</pre>\r\n";
}