返回外部 IP 的 Windows 命令

返回外部 IP 的 Windows 命令

是否有一个命令可以帮助我找到我的路由器或 NAT\DSL 路由器等的外部 IP,而无需访问 whatsmyip.net 或类似网站。

答案1

没有内置命令可以执行此操作。部分问题在于,当您通过路由器连接到互联网时,您的网络硬件并未直接连接到互联网,因此您的系统没有专门分配 IP。如果您使用反向代理,在某些情况下您甚至可能拥有多个外部 IP,因为许多公司网络都已设置。最好的办法可能是创建一个脚本来查询whatismyip.org或者尝试查找是否已经存在。

(提示:whatismyip.org 比大多数其他解决方案更可取,因为它只返回您的 IP 纯文本 - 没有多余的文本、链接、图像或其他垃圾。与大多数其他 IP 检测网站相比,它在自定义脚本中更容易使用。)

答案2

您可以使用 DNS 请求而不是 HTTP 请求来找出您的公共 IP:

C:\> nslookup myip.opendns.com. resolver1.opendns.com

它使用resolver1.opendns.comDNS 服务器来解析神奇的myip.opendns.com.主机名你的.IP 地址。(注意:查询中的尾随会阻止附加搜索域,这会产生不正确的结果。)

Unix 版本:

$ dig +short myip.opendns.com @resolver1.opendns.com

答案3

获取您自己的curl副本http://curl.haxx.se/download.html然后就

curl "http://myexternalip.com/raw"

或者使用 powershell:

$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")

(免责声明:http://myexternalip.com是我创建的)

答案4

创建一个名为的文件ip.vbs并将以下内容复制到其中:

Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText   'or do whatever you want with it
Set http = Nothing

使用执行

C:\>cscript ip.vbs

就像 nhinkle著名的,最好选择只返回IP而不返回HTML+广告等的网站,如:

(来源:前http://externip.com/about

相关内容