我的電腦坐在路由器/防火牆後面。如何以編程方式查明我的外部IP地址是什麼。我可以使用http://www.whatsmyip.org/進行臨時查詢,但TOS不允許進行自動檢查。我如何知道我的外部IP地址是什麼?
任何想法?
我的電腦坐在路由器/防火牆後面。如何以編程方式查明我的外部IP地址是什麼。我可以使用http://www.whatsmyip.org/進行臨時查詢,但TOS不允許進行自動檢查。我如何知道我的外部IP地址是什麼?
任何想法?
http://ipecho.net/plain似乎是一個 可行的替代方案,因爲whatismyip.com現在需要其成員的自動鏈接 。他們非常友善地爲 offering這項服務免費,所以請不要濫用它。
有關爲什麼這是首選方式的詳細信息: http://www.whatismyip.com/automation – Justin 2009-07-17 22:23:37
whatismyip現在收取此服務。你可以在http://www.whatismyip.com/membership-options/找到更多信息。 – RyanfaeScotland 2013-01-18 11:59:16
http://www.ipveg.com不需要任何身份驗證或任何限制 – 2013-12-23 09:21:44
不幸的是,沒有簡單的方法來做到這一點。
我會使用像www.whatsmyip.org這樣的網站並解析輸出。
checkip.dyndns.com返回一個非常簡單的HTML文件,該文件是這樣的:
<html> <head> <title>Current IP Check</title> </head> <body> Current IP Address: 84.151.156.163 </body> </html>
這應該是很容易解析。 此外,該網站存在了大約十年。有希望它會在一段時間左右。
不幸的是,DynDns服務僅在您使用其服務時才能使用(http://dyn.com/support/developers/checkip-tool/)。 – 2013-06-30 17:27:12
我確實使用它。在大多數語言中解析起來非常簡單 - 在Python中,它是一行代碼,用於刪除所有額外的代碼行(filebuffer [before:after],其中前後是字符數,常量。)@IvanMesic,你不必使用他們的任何服務來使用這個網站。 – JFA 2013-11-15 16:53:26
whatismyip.com或ipchicken.com很容易解析。
如果你有一個虛擬主機或虛擬主機,你也可以確定它,而不用擔心它隨機下降讓你卡住。
如果你有機會與modphp一個Web服務器,你可以滾你自己:
<?php print $_SERVER['REMOTE_ADDR']; ?>
如果你不希望讓受虐待,你必須保守祕密或添加請求限制。
我一直在我的服務器上使用多年。
明確:
創建一個在您的網站上的public_html文件夾,名爲whatismyip.php文件。它可以被稱爲任何東西,並可以在你的webroot中的任何地方。
添加上面的線,然後查詢您的服務器:
curl http://example.com/whatismyip.php
例如。
我在幾年前向服務器添加了一個像這樣的腳本這是非常有用的。其他一切都是奇怪的矯枉過正。 – JAL 2009-07-18 15:10:20
但我們很懶,這就是爲什麼我們在尋找快速的東西! – georgiecasey 2013-07-26 18:42:16
另一種方法是,如果您有權訪問雲電子郵件(yahoo,google,hotmail),請發送電子郵件給自己。然後查看標題,你應該看到你的IP地址。
我會查找確切的區域,但標題可以從每個implmentation變化,尋找接收,通過並按照直到你得到的東西,看起來像是發自於
編輯:這回答瞭如何找到IP地址,而不是通過PROGRAMMATIC方法
這是一個非常低效的想法。 – 2009-07-18 02:54:47
可能效率不高,但如果您在鎖定的工作站上,並且無法使用您可能使用的另一種方法訪問外部設備。 – Wayne 2009-07-18 03:00:53
如果你在後面的路由器說UPnP,你可以隨時使用UPnP庫來查詢路由器的外部IP。
不幸的是截至2013年,whatismyip.com對該服務收費。
http://www.icanhazip.com 3年後仍然強勁。只輸出IP作爲文本,絕對沒有別的。
http://checkip.dyndns.org仍然有效。
如果您想確保它不會停止,您也可以使用Google,但它仍然可以阻止您違反TOS。
https://www.google.ie/search?q=whats+is+my+ip
但是,即使他們阻止了我,他們還是告訴我在錯誤消息我的客戶端IP地址。
我的WRT54G路由器通過其本地路由器訪問功能(http管理界面)告訴我,我想象一下類似的事情可以用許多其他設備完成。在這種情況下,條目頁給出了IPv4地址的八位位組中包含該短語四行:
類= NUM最大長度= 3尺寸= 3的值=「我‘名稱=’wan_ipaddr_ Ñ」身份證=「wan_ipaddr_ ñ」
凡我是該八位位組值和ñ是八位位組數。順口溜該位獲取並分析它對於我來說,cygwin的禮貌:
#! /usr/bin/env perl
use strict;
use warnings 'all';
my($account, $password) = @ARGV;
open QUERY,
"curl --sslv3 --user '$account:$password' https://Linksys/ --silent |"
or die "Failed to connect to router";
my @ipaddr = ('x','x','x','x');
while(<QUERY>) {
$ipaddr[$2] = $1 if /value='(\d+)' name='wan_ipaddr_([0-3])/;
}
close QUERY;
print join('.', @ipaddr);
沒有保證,這將與路由器固件的所有版本。
如果您的路由器設置爲使用http作爲此接口,請刪除--sslv3 curl選項,並且您可以使用點分十進制表示法來尋址路由器。爲了與捲曲以上選項使用https,我也這樣做:
使用瀏覽器來獲取路由器的自簽名證書(保存爲Linksys.crt)。
把它添加到我的CA包:
openssl x509 -in Linksys.crt -text >> /usr/ssl/certs/ca-bundle.crt
或者,您可以使用--insecure選項繞過證書驗證,這可能會使情況更加合理。
curl ifconfig.me
或
curl ifconfig.me/ip
櫃面你沒有捲曲安裝,
wget ifconfig.me/ip 2>/dev/null && cat ip
希望這有助於。
簡單但不優雅的用途。我安裝了一些安全攝像機和我的有線電視提供商 - Wide Open West或WOWWAY,每個月需要10美元來設置一個靜態IP-EXTORTION用於DHCP預留......所以,我創建了一個帶有以下代碼的VBS文件,以便將結果Dropbox和谷歌驅動器...必須刪除文件,爲新的同步,雖然由於某種原因。
這可以在我家的個人電腦上運行。我的電腦設置爲在停電時恢復運行,並且計劃每天運行一次任務(請注意,如果您的電腦經常運行,該站點將阻止您的請求)。
現在我可以在路上我的IP地址,看的人偷我的東西:-)
get_html "http://ipecho.net/plain", "C:\Users\joe\Google Drive\IP.html"
get_html "http://ipecho.net/plain", "C:\Users\joe\Dropbox\IP.html"
sub get_html (up_http, down_http)
dim xmlhttp : set xmlhttp = createobject("msxml2.xmlhttp.3.0")
xmlhttp.open "get", up_http, false
xmlhttp.send
dim fso : set fso = createobject ("scripting.filesystemobject")
dim newfile : set newfile = fso.createtextfile(down_http, true)
newfile.write (xmlhttp.responseText)
newfile.close
set newfile = nothing
set xmlhttp = nothing
end sub
http://myexternalip.com提供這種信息。要 檢索您的IP你有充裕的選擇:
由於這個問題後來被問到,現在有一個免費的可用Web服務,專門用於允許您以編程方式確定您的IP地址,稱爲ipify。
$ curl 'https://api.ipify.org?format=json'
結果
{"ip": "1.2.3.4" /* your public IP */}
+1尊重的TOS! – RichieHindle 2009-07-17 22:57:16
如果你沒有擁有你正在使用的服務器,那麼你需要確保你有權訪問網絡之外的主機,然後才能真正投入到項目中。 – 2009-07-18 02:55:54