PHP版PING函数,可用来检测对方主机是否在线
2009-05-07 | millken Posted On : 代码|Code

function ping($host) {
$package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";

/* create the socket, the last '1' denotes ICMP */
$socket = socket_create(AF_INET, SOCK_RAW, 1);
/* set socket receive timeout to 1 second */
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 0, "usec" => 1000));

/* connect to socket */
socket_connect($socket, $host, null);

/* record start time */
$start_time = microtime(true);
socket_send($socket, $package, strlen($package), 0);

if(@socket_read($socket, 255)) {
$end_time = microtime(true);
$total_time = $end_time - $start_time;
return $total_time;
} else {
return false;
}

socket_close($socket);
}


标签: , 引用:0
1 评论:
不错,可以实现我想要的功能,谢谢!
Post By: Anonymous On:14/5/09 16:42
Post a Comment