예제 #1
0
 /**
  * 查找当前服务器所在网段的所有可以 ping 的 IP
  */
 public function vFindIp($sMask = '')
 {
     $ipinfo = $this->_aGetInnerIpInfo();
     $ip = ip2long($ipinfo['ip']);
     if (0 === strlen($sMask)) {
         $sMask = $ipinfo['mask'];
     }
     $mask = ip2long($sMask);
     $this->_aInsertIpSegment($ip, $mask);
     echo date('Y-m-d H:i:s'), "\tipinfo\t", long2ip($ip), "\t", long2ip($mask), "\n";
     $ipc = Ko_Tool_Ip::IGetIpCountInMask($mask);
     for ($i = 1; $i < $ipc - 1; $i++) {
         $nip = ($ip & $mask) + $i;
         $ping = Ko_Tool_CMD::BPingIpInfo(long2ip($nip));
         if ($ping) {
             $this->_aInsertIp($nip);
         }
         echo date('Y-m-d H:i:s'), "\t", $i, "\t", long2ip($nip), "\t", $ping ? 'true' : 'false', "\n";
     }
 }