我在一個小型網絡上有一臺計算機,所以我的IP爲192.168.2.100。獲取我的IP地址
我想讓我的真實ip。我下載了no-ip客戶端,但對於這樣一個簡單的事情來說,這看起來很麻煩。
我創建了這個PHP腳本得到了http://www.ip-adress.com/頁面,並檢索了它給我的IP。
有沒有更簡單的方法?無論是使用C,WSH或其他。或者如果在PHP中有更簡單的方法,請告訴我。
當我得到ip時,我會將它上傳到我的ftp站點,以便我可以看到工作中的ip。
我在一個小型網絡上有一臺計算機,所以我的IP爲192.168.2.100。獲取我的IP地址
我想讓我的真實ip。我下載了no-ip客戶端,但對於這樣一個簡單的事情來說,這看起來很麻煩。
我創建了這個PHP腳本得到了http://www.ip-adress.com/頁面,並檢索了它給我的IP。
有沒有更簡單的方法?無論是使用C,WSH或其他。或者如果在PHP中有更簡單的方法,請告訴我。
當我得到ip時,我會將它上傳到我的ftp站點,以便我可以看到工作中的ip。
不,沒有一個更簡單的方法。你的電腦真的不知道它背後的公共IP--它和公共互聯網之間可能有任何數量的NAT。它只知道它收到192.168.2.100的消息,並通過網關192.168.2.1發送出去的消息。它不知道數據包到達網關後會發生什麼。
如果您想要獲得遠程站點在處理流量時看起來最終的IP,那麼唯一的方法就是實際訪問遠程站點。在許多情況下,您的計算機可能不知道代理或NAT服務器正在更改IP。
你這樣做的方式可能和任何一樣。
你說你有一個公共的FTP站點 - 你也有一個網站嗎?您的其他選擇是讓您的本地機器訪問該公衆網站上的一個php頁面。該PHP頁面可以驗證它是你,然後使用$ _SERVER ['REMOTE_ADDR']來記錄你的外部IP。
不是你所要求的,但仍然適用於你想要的。我在家用計算機上安裝了GMail通知程序,然後轉到帳戶活動頁面,查看哪個IP地址正在訪問我的Google帳戶。安全,簡單,有效。
某些路由器可以通過UPnP或更具體地說IGD protocol告訴你他們的外部IP地址。如果你碰巧擁有一個支持UPnP的路由器,你可以試試這個。 IStaticPortMapping::get_ExternalIPAddress聽起來很有希望。
支持SNMP的設備也可以告訴你他們的IP地址。要求的OID是IP-MIB::ipAdEntAddr。
不幸的是,你的服務器將最有可能完全無視它自己的外部地址似乎是(因爲它可能被進一步上游設置過一些路由器/網關)
你可以看看這個鏈接
http://ip-address.domaintools.com/myip.xml
它可能比你現在正在做的事情更容易一些解析。
我想不出如何從另一臺機器的角度解決你的IP地址。這裏有一些想法:
我總是用curl http://whatismyip.org
讓我的公網IP,而NAT後面。
您的計算機沒有關於任何NAT或路由的信息,它發生在互聯網和互聯網之間,除了下一跳(通常是您的路由器的內部IP)。它根本不知道內部地址在哪一跳跳轉到哪個公共地址。
因此,沒有任何簡單的函數或方法可以用任何語言調用。
唯一的兩種方法是問別人。如何?:
請注意重新發明輪子,有一個standard protocol, STUN(與已有的實現),只是爲了。另見Discovering public IP programatically。
您也可以訪問這個頁面,讓您的IP
像你已經做的那樣刮一些外部服務可能已經足夠了。它甚至可能是唯一的方法。您的路由器和/或調制解調器將會知道您的真實IP。我不知道你將如何以編程方式與之交互。 – Albert 2009-05-27 18:41:28
http://www.whatismyip.org/提供了一個更簡單的抓取頁面。 – Albert 2009-05-27 18:42:13