今天發生很有趣的事,連上主機維護,不小心把 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