【发布时间】:2014-01-30 10:45:57
【问题描述】:
我想 Ping 基于 IP 和端口的服务器。为什么是港口? 因为我正在构建的系统将在不同的端口上有登录服务器和游戏服务器 现在我正在使用 fsockopen
$start = microtime(true);
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
return false;
}
else {
$ping = microtime(true) - $start;
$ping = round($ping * 1000);
$res['ip'] = $host;
$res['port'] = $port;
$res['ping'] = $ping;
$res['msg'] = 'success';
return $res;
}
我不能也不想用 exec() 1. IP 和 Port 将由用户输入,exec() 无法 ping 端口。
使用 fsockopen 我只能接受延迟(这不太正确)。
如果有人知道我怎么不能得到 Latensy、Packets send|recived、Jitter 等。
也许是某种用于 PHP Ping 的第 3 方 API。 提前谢谢你
【问题讨论】:
-
重复?在没有 fsockopen 的情况下 ping IP+PORT 没有答案
-
对不起,我的错。无论如何,你能详细说明你的情况吗? Ping 在 ICMP 协议上工作,在所述不同端口上的登录服务器/游戏服务器是否也使用 ICMP?如果您想实际使用“ping”,我认为他们应该这样做。
-
是登录服务器/游戏服务器使用ICMP
-
如果您的服务不支持 ping 对话框,您应该留在 ICMP。