我的电脑坐在路由器/防火墙后面。如何以编程方式查明我的外部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