2009-05-27 262 views
8

我在一個小型網絡上有一臺計算機,所以我的IP爲192.168.2.100。獲取我的IP地址

我想讓我的真實ip。我下載了no-ip客戶端,但對於這樣一個簡單的事情來說,這看起來很麻煩。

我創建了這個PHP腳本得到了http://www.ip-adress.com/頁面,並檢索了它給我的IP。

有沒有更簡單的方法?無論是使用C,WSH或其他。或者如果在PHP中有更簡單的方法,請告訴我。

當我得到ip時,我會將它上傳到我的ftp站點,以便我可以看到工作中的ip。

+0

像你已經做的那樣刮一些外部服務可能已經足夠了。它甚至可能是唯一的方法。您的路由器和/或調制解調器將會知道您的真實IP。我不知道你將如何以編程方式與之交互。 – Albert 2009-05-27 18:41:28

+6

http://www.whatismyip.org/提供了一個更簡單的抓取頁面。 – Albert 2009-05-27 18:42:13

回答

12

不,沒有一個更簡單的方法。你的電腦真的不知道它背後的公共IP--它和公共互聯網之間可能有任何數量的NAT。它只知道它收到192.168.2.100的消息,並通過網關192.168.2.1發送出去的消息。它不知道數據包到達網關後會發生什麼。

2

如果您想要獲得遠程站點在處理流量時看起來最終的IP,那麼唯一的方法就是實際訪問遠程站點。在許多情況下,您的計算機可能不知道代理或NAT服務器正在更改IP。

0

你這樣做的方式可能和任何一樣。

你說你有一個公共的FTP站點 - 你也有一個網站嗎?您的其他選擇是讓您的本地機器訪問該公衆網站上的一個php頁面。該PHP頁面可以驗證它是你,然後使用$ _SERVER ['REMOTE_ADDR']來記錄你的外部IP。

3

不是你所要求的,但仍然適用於你想要的。我在家用計算機上安裝了GMail通知程序,然後轉到帳戶活動頁面,查看哪個IP地址正在訪問我的Google帳戶。安全,簡單,有效。

0

不幸的是,你的服務器將最有可能完全無視它自己的外部地址似乎是(因爲它可能被進一步上游設置過一些路由器/網關)

你可以看看這個鏈接

http://ip-address.domaintools.com/myip.xml

它可能比你現在正在做的事情更容易一些解析。

0

我想不出如何從另一臺機器的角度解決你的IP地址。這裏有一些想法:

  • 自動加載 ip-adress。COM頁面並解析它
  • DynDNS
2

我總是用curl http://whatismyip.org讓我的公網IP,而NAT後面。

0

您的計算機沒有關於任何NAT或路由的信息,它發生在互聯網和互聯網之間,除了下一跳(通常是您的路由器的內部IP)。它根本不知道內部地址在哪一跳跳轉到哪個公共地址。

因此,沒有任何簡單的函數或方法可以用任何語言調用。

唯一的兩種方法是問別人。如何?:

  • 通過獲取並解析路由器管理站點上的正確頁面,詢問您的NAT路由器(因爲它本身會轉換爲公共IP)。可以說是最可靠和公平的。
  • 通過獲取和解析公共服務(如http://dynamic.zoneedit.com/checkip.html),詢問外部主機如何看待您。 VB腳本中的示例是here
1

當我需要檢查自己的公網IP地址,我喜歡這個網站:

http://www.whatismyip.global/

網站不斷您的IP的歷史。對我來說非常有用!