Скрытие меню справки от команды ping

В настоящее время я пытаюсь пинговать хост в Windows XP через PHP. На данный момент я смог это сделать, но «помощь» продолжает появляться всякий раз, когда я пытаюсь пропинговать хост со своей машины, поэтому мне было интересно, есть ли способ скрыть меню «помощь» в любом случае.

Это код, который я смог запустить на 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>";


?>

Заранее спасибо!

0

Решение

Нет способа подавить помощь. Он не должен отображаться при запуске команды, если команда не запущена без аргументов. Больше: 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";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]