为了账号安全,请及时绑定邮箱和手机立即绑定

来自客户端浏览器的 Ping(延迟)请求,而不是来自虚拟主机

来自客户端浏览器的 Ping(延迟)请求,而不是来自虚拟主机

PHP
慕尼黑5688855 2022-06-11 10:42:46
我想知道如何更改代码以使需求不是来自虚拟主机,而是来自客户端浏览器,在这种情况下显示相应的客户端浏览器对特定网站/服务器有多少“毫秒”<?function ping($host, $port, $timeout) {   $tB = microtime(true);   $fP = fSockOpen($host, $port, $errno, $errstr, $timeout);   if (!$fP) { return "Server is down"; }   $tA = microtime(true);   return round((($tA - $tB) * 1000), 0)." ms"; }//Echoing it will display the ping if the host is up, if not it'll say "down".echo ping("google.com", 80, 10); ?>
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

这在技术上是不可能的。特别是,因为你想使用 PHP - 你不能让任何 PHP 代码在客户端执行。

测量客户端延迟的唯一方法是通过 JavaScript,由于同源策略,您在此处非常有限。您需要在要测量延迟的服务器上进行延迟测量 JavaScript(我在这里没有说真正的“ping”,因为发送原始数据包也是不可能的 - 由于安全原因),以及同一主机上的 WebSocket 服务器。然后您可以通过来自该服务器的 JS 建立 WebSocket 连接,并评估建立 WebSocket 连接的延迟。

这离真正的 ping 或 TCP 握手太远了——你的例子也不是真正的 ICMP,所以也不是真正的 ping。此外,您无法通过 WebSocket 或 AJAX 请求从 JavaScript 连接到您选择的任何主机。所以,你想要达到的目标是不可能的。


查看完整回答
反对 回复 2022-06-11
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号