/** * 查找当前服务器所在网段的所有可以 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"; } }