今天發生很有趣的事,連上主機維護,不小心把 network.service 設成 enable
所以沒多久,主機自己dhcp 後,ip 就跑了,不知道是因為一個網段有1~254
不知道主機的 IP 變多少,立馬寫一支小程式去掃整個網段,還好一下就看到該主機回應了!
連上後確定是那台,把問題解決...Orz
<?php
$ip="xxx.xxx.xxx.";
$ports = array(21, 22,80);
for($i=1;$i<254;$i++)
{
foreach ($ports as $port)
{
$connection = @fsockopen($ip.$i, $port,$errno, $errstr, 0.1);
if (is_resource($connection))
{
//成功的顯示
echo "{$ip}{$i}:{$port} (".getservbyport($port, 'tcp') . ") is open. \n";
fclose($connection);
}
else
{
//失敗不顯示
//echo "{$ip}{$i}:{$port} is not responding. \n";
}
}
}
參考:http://stackoverflow.com/questions/2226374/test-if-port-open-and-forwarded-using-php