2013-04-10 48 views
0

我們如何知道我們自己的客戶端(=我們的計算機)上的EXTERNAL IP地址;不是我們的內部IP地址,而不是通過現有的網站,而不是通過我們爲此問題製作的新網站;只使用純客戶端操作系統命令腳本和/或JavaScript?那可能嗎?事實上,如果有人認爲他們應該收集100萬美元,因爲據我所知,沒有人在這個星球上的任何一個網站上拿出答案。我們怎樣才能知道我們自己的客戶端上的外部IP地址

+0

OK,C#(或Java等),也可以用作每個問題,但如果可能的話,將給予一個更復雜的答案。 A.R. – 2013-04-10 20:43:47

回答

1

我認爲的確有人ask that already,但使用C#

IPHostEntry host; 
string localIP = "?"; 
host = Dns.GetHostEntry(Dns.GetHostName()); 
foreach (IPAddress ip in host.AddressList) 
{ 
    if (ip.AddressFamily == AddressFamily.InterNetwork) 
    { 
     localIP = ip.ToString(); 
    } 
} 
return localIP; 

我不知道您的目標操作系統,但您可以創建一個控制檯應用程序,並從中讀取

希望值它有助於

+0

我會嘗試,如果不滿意,請看看您指出的其他問題,非常感謝。 A.R. – 2013-04-10 20:45:53

0

從簡單的系統調用中找不到外部IP地址。您可以從路由器接收它,這可能是與路由器相關的,或者您需要通過局域網外的某個設備撥打電話。通常這是通過HTTP請求或一些其他流行的互聯網服務完成的。

此外,本地網絡上的個人計算機沒有外部IP。路由器有一個地址並將數據包轉發到單個設備。

+0

感謝您的回答,但不幸的是,您不會得到那麼多的百萬美元...此外,我們可以說,如果不存在,它應該(在這個可怕的信息時代)... – 2013-04-10 20:33:47

0

如果不走出現有的網絡,您無法做到這一點。

要知道你的IP地址,你需要詢問你的路由器。這是您的路由器,可以爲您提供網絡中的IP。

要知道屬於您的路由器在他們的網絡中的IP地址 - 您需要問在該網絡中的人關於您的IP。因爲這個網絡給了他一個IP。

最後,如果你想知道你的ISP網絡外的IP地址 - 你需要詢問以外的人你的ISP的網絡。

+0

我沒有構成作爲一個條件,你不能訪問一個網絡來獲得它,只有你不能通過外部的手段......大多數情報,但無論如何感謝,AR – 2013-04-10 20:43:27

1

正如Gricha所說,它可以通過外部站點來請求。還有一個託管的開源項目。

您可以通過調用該API獲得JSON格式的外部IP信息:

curl http://ip2country.sourceforge.net/ip2c.php?format=JSON 

在C#中,必須有一個類似的方法來調用Web API。

項目信息是在這裏:http://code.google.com/p/ip-address/