用戶將上傳文件到我的服務器。在perl中,如何給出服務器ips和用戶ip的列表,如何檢測哪個服務器最適合?我看着MaxMind,但它只會告訴我ips的位置。我如何找到最近的那個?根據用戶ip查找最近的服務器?
2
A
回答
3
也許我失去了一些東西,但
如果你知道IP地址(服務器和通過的MaxMind用戶)纔算對用戶IP的每個服務器IP之間的距離,選擇最小的一個位置。 ..
編輯 - 按評論:
的物理距離,沒有說太多關於性能... OTOH用於測量/比較性能,你需要在用戶和服務器之間,然後發送測試數據包比較/決定...
編輯2 - 根據意見:
如果你只有一個服務器每個洲,那麼計算是相當容易的...檢查用戶IP的大陸,並相應地選擇服務器,因爲它通常是相當安全的assmue在一個大陸不同於用戶的服務器會表現得更差...
1
你需要最近的服務器還是最快的服務器?
如果您需要找到性能最好的服務器,您可能需要發送測試數據包並獲得每個服務器的響應時間,以便找出答案。
如果你需要找到最近的,那麼你可以計算每個目的地之間的跳數來選擇最接近的。 PS:我不是很熟悉perl給你一個perl的具體命令。
0
如果他們打算多次執行此操作,則可以記錄所有上傳的IP(或C類塊),然後從每臺服務器運行一次性traceroute/ping,然後保留以使用下一個他們上傳的時間。
0
如果它不能從一個IP地址來可靠地確定,但可以使用DNS或第三方服務,如啓發式的MaxMind得到很遠的實際地理位置,你之後,然後。
但是,如果您在最短的網絡距離之後,這是預期響應時間的某種指示,那麼您可以檢查數據包標頭的TTL字段:較低的TTL表示數據包走得更遠。這不是萬無一失的,因爲不同的OS供應商使用不同的默認TTL,但它是一個選項。
相關問題
- 1. 使用Boost ASIO查找服務器IP
- 2. 檢查最近的服務器位置
- 3. 查找服務器的IP地址
- 4. 尋找最近的IP
- 5. 查找網絡中最近的服務器
- 6. mysql查找最近的用戶評論
- 7. 通過sql查找服務器IP
- 8. 動態查找服務器IP地址
- 9. 根據最近的客戶端dob查找平均工資的SQL查詢
- 10. 根據用戶的位置將用戶重定向到最近的服務器而無需更改url
- 11. MySQL - 根據用戶名查詢最近的輸入 - 非常慢
- 12. 查找Oracle數據庫服務器的IP地址
- 13. Excel公式根據日期查找最近的更大數字
- 14. 在postgres heroku數據庫上查找服務器IP
- 15. 根據工作組服務器檢查用戶憑證
- 16. Odp.Net - 根據客戶和服務器
- 17. 客戶端請求服務器使用服務器IP地址
- 18. 查找連接到WCF服務的客戶端的IP /名稱?
- 19. 查找最近點
- 20. 如何查找Mac機器的DNS服務器IP地址?
- 21. 最近用戶查詢
- 22. SQL服務器找到最近的日期範圍
- 23. 在http服務器上找到最近的文件(python)
- 24. 根據服務器生成的數據驗證用戶輸入
- 25. 如何查找我的服務器的IP爲Microsoft的雲
- 26. 服務器如何找到真實的客戶端IP地址?
- 27. MapKit查找最近的loacation
- 28. 查找最近的日期
- 29. Lucene的:查找最近數
- 30. 查找最近的元素
我該如何計算距離? –
你可以使用一些簡單的座標之間的歐幾里德距離。或者,你可以正確地做,並根據座標數據計算距離,例如, WGS84 - http://www.movable-type.co.uk/scripts/latlong-vincenty.html – Flexo
我不會去投注物理距離是網絡連接的一個偉大的估計都不過。其他因素,例如負載(主機*和鏈接)可能經常更加重要。 – Flexo