$flags="";
// Valido il campo di input: deve essere un ip o un nome dns valido
if (preg_match("/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/",$_POST['ipadd']) or preg_match("/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$/",$_POST['ipadd'])) {
if (is_numeric($_POST['hops'])) {
$flags=$flags." -m ".$_POST['hops']." ";
if ($_POST['resolve']=='') $flags=$flags." -n ";
$fp = popen("traceroute ".$flags.$_POST['ipadd']. " 2>&1", "r");
while(!feof($fp))
{
print fread($fp, 1024);
flush();
}
fclose($fp);
} else {
echo "Invalid HOPS number";
}
}
else {
if ($_POST['ipadd']!='')
echo "Invalid IP Address / DNS name";
}
?>
That's all!