簡體   English   中英

獲取我的WAN IP地址

[英]Get my WAN IP address

我如何從互聯網上看programaticaly獲取我的網絡的IP地址? 它顯然是我的路由器連接到ISP時可以訪問的屬性。 有沒有辦法從使用標准協議的路由器獲取此信息。 我唯一的另一個選擇是找到一個返回我的IP地址的WS(令人驚訝的難以做到),或者只是去找whatismyip.com這樣的東西並刪除所有的HTML(非常臟和易於改變)。 有沒有其他方法???

不要刮不到whatismyip.com,請看這里如何調用他們的API,只返回你的地址。

如果您不使用它,您必須自己編寫類似的東西,即路由器之外的主機,它可以報告您的明顯地址。

請注意,Web服務器可能看不到您的真實WAN IP地址,因為:

  • 您的ISP可能透明地代理HTTP流量,服務器將看到代理的IP。 在這種情況下,您通常需要查找並解析X-Forwarded-For標頭。

  • 或者,奧拉夫指出,有可能是你和廣泛開放的互聯網之間的另一個NAT路由器,換句話說, 你的路由器的WAN地址是一個專用網絡上。 從whatismyip.com這樣的服務中獲得的最好的是最外層NAT路由器的IP。

如果您的路由器支持snmp,您可以使用它來詢問它的外部IP。 這里有一個小例子:

http://www.rohitab.com/discuss/index.php?showtopic=31901

我已經投了Paul Dixons的答案,因為它看似完整,但還有一個方面:

  • 您的ISP可能會為您提供私人地址 - 某些ISP 發生這種情況。 根據您的預期,您可能需要一個您沒有的可路由地址
  • 如果您自己擁有代理,Paul提到的代理信息(HTTP-Header X-Forwarded-For)可能是不可路由的地址
  • 基於混合所有這些方面(從您的ISP獲得不可路由的地址並自己擁有代理),您可能會得到奇怪的結果。

這些方面並不是典型的日常情況,但根據您的需求,您可能需要考慮這些因素。

我沒有看到語言規范,但我在python中這樣做:在Python中查找面向公眾的IP地址?
基本上沒有辦法不依賴外部服務器,在這種情況下我使用http://www.whatismyip.com/automation/n09230945.asp只提供IP地址。 或者,您可以使用自己的腳本,在PHP中看起來像:

<?php
echo $_SERVER['REMOTE_ADDR'];
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM