check($ip, $port); if ($status == 1) { echo $ip . "\t可用\r\n"; } // if ($val['status'] != $status) { ServerTable::update(['status' => $status, "last_check" => date("Y-m-d H:i:s")], ['id' => $val['id']]); // } } echo "第" . $i . "次执行完毕\r\n"; $i++; sleep(60); } } /** * @param string $ip ip * @param int $port 端口 * @return int 返回状态 */ public function check($ip, $port) { $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_nonblock($sock); socket_connect($sock, $ip, $port); socket_set_block($sock); $status = socket_select($r = array($sock), $w = array($sock), $f = array($sock), 3); return $status; } }