亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

來自客戶端瀏覽器的 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 關注
  • 146 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號