我需要獲取計算機的實際IP地址(而不是網關),但我嘗試過的所有解決方案都返回了網關IP地址。例如,來自此鏈接Get the client IP address using PHP的所有建議都會返回網關地址。有沒有一種方法可以得到我的電腦的實際IP地址(公共) - 無論是在PHP或Java?獲取實際機器的IP地址
0
A
回答
0
從評論,這聽起來像你想創建爲每臺計算機訪問服務器的唯一標識符。目前的信息中沒有一件,你可以得到,將作爲這樣一個標識符,這裏的原因:
IP地址 ,你可以看到的IP地址是公共地址,而不是設備的私有地址在NAT'd路由器後面。
MAC地址中的每個計算機的每個網卡 MAC地址是唯一的,但該信息並不局域網段可用的外部。
您可以使用多條信息(如IP地址和用戶代理)的組合來作出有根據的猜測,即給定的請求來自獨特的用戶,但這將是一個猜測。沒辦法確定它。
使用$_SERVER['REMOTE_ADDR']
獲取用戶的公共地址,然後使用$_SERVER['USER_AGENT']
獲取其用戶代理。如果這兩者的組合是唯一的,那麼很可能請求來自獨特的用戶。
另一種方法是設置一個具有遙遠將來到期日期或會話ID的cookie。但是,這一切都取決於您需要多長時間跟蹤用戶,如果您需要在關閉瀏覽器並在稍後返回之後對其進行跟蹤,等等。唯一完全可行的方法是創建一個帳戶,其中他們在您的網站進行身份驗證。
+0
對我有意義。謝謝! – bdfios
1
java's InetAddress class可能會有用。
InetAddress IP=InetAddress.getLocalHost();
System.out.println("IP is := "+IP.getHostAddress());
輸出:IP爲:= 10.100.95.228
相關問題
- 1. 獲取虛擬機的IP地址
- 2. 獲取SFML中的主機IP地址
- 3. 獲取打印機的IP地址
- 4. 獲取我的機器C#的虛擬機安裝IP地址
- 5. 獲取IP地址
- 6. 獲取IP地址
- 7. 獲取IP地址
- 8. 從IP地址獲取主機名
- 9. 獲取KVM Guest虛擬機IP地址
- 10. 從IP地址獲取主機名
- 11. 獲取遠程主機IP地址QTcpServer
- 12. 如何從IP地址獲取服務器的機器名稱?
- 13. 顯示IP地址而不是瀏覽器地址欄中的實際網址
- 14. 獲取IP地址的mac地址
- 15. 獲取本地IP地址
- 16. 使用CloudFlare獲取真實IP地址
- 17. 用VB.NET獲取「真實」IP地址?
- 18. 獲取主機的MAC地址和IP地址 - C++
- 19. 獲取ECS容器的IP地址
- 20. 在PHP中獲取本地機器IP地址
- 21. 如何在Docker容器中獲取本地主機IP地址?
- 22. 獲取我的IP地址
- 23. 獲取ip地址的值
- 24. Qt - 從IP地址獲取主機名和MAC地址
- 25. 本地主機vs真實IP地址
- 26. 獲取Linux機器的所有ip地址
- 27. 在PHP中獲取服務器的主機名或IP地址
- 28. 使用java獲取客戶端機器的IP地址
- 29. 如何從Rust中獲取機器的IP地址列表?
- 30. 獲取客戶端機器的IP地址
什麼樣的網關?你控制它嗎?你能相信嗎? – SLaks
這就像一個AWS實例嗎? – Machavity
當你說你需要獲取「我的電腦」的IP地址,「我的電腦」是運行PHP腳本的機器,還是使用網頁瀏覽器訪問運行PHP腳本的服務器的機器? –