如何从 Windows 命令行获取我的外部 IP 地址(通过 NAT)?

如何从 Windows 命令行获取我的外部 IP 地址(通过 NAT)?

窗户“ipconfig”命令只能显示我机器的以太网接口的参数(即使有参数ipconfig /all)。它可以显示有关接口的详细信息,但永远不会显示我的外部 IP 地址NAT网络。

ipconfig/all——Windows 屏幕截图

不过,有几个网站,例如“我的 IP 地址是多少”可以获取并显示我的外部 IP 地址。所以我想知道是否有可能从外部获取此值?我是否应该期望有某种方法可以从本地机器的命令行获取此信息...

我需要获取此值来登录我正在使用的应用程序VB脚本cmd。有没有办法从Windows 上做到这一点?

答案1

现在,使用 Oliver 提供的站点,可以在 VBScript 中完成此操作。

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://ifconfig.me/ip", False
o.send
WScript.StdOut.Write o.responseText

PowerShell 有类似的方法。

答案2

问题是,这不是你的 IP 地址。这是你的路由器的 IP 地址。

因此,如果不通过路由器,您将永远无法检索它。最简单的方法就是让路由器为您检索一个网站(正如您已经注意到的)。因为路由器将使用其 IP 地址来检索该网站。

话虽如此,你可以使用以下方法让自己轻松一点ifconfig.me/ip。现在,如果您有curl,那么您已经完成了,如果没有:Windows 原生的 Wget/cURL 替代品?

答案3

创建一个 VB 脚本以便在闲暇时运行。

在 txt 文件中输入以下内容:

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

关闭 txt 文件并将其重命名为 ip.vbs(此示例将其保存到 C:)

在 Windows 中打开一个 Dos 窗口(运行 cmd)(哈!我刚刚意识到如果你交换它,它就会变成运行 dmc!!

确保你位于 c:/ 中(如果不是,请输入C:& 按 Enter 键,然后光盘..& 输入几次直到看到 C:>)

在 dos 提示符下输入:

cscript ip.vbs

您将立即看到您的外部 IP。

如果你把 vbs 文件放到 usb 密钥或类似的东西上(并且记得运行脚本ip.vbs在 dos 提示符下 - 但请确保您与 ip.vbs 文件位于同一目录中),您可以随身携带它,并在任何计算机上运行 .vbs 文件以查看其外部 IP。

另外需要注意的是,包含 icanhazip.com 地址的行可以更改为以下任意一项:

http://myip.dnsomatic.com
http://whatismyip.org
http://icanhazip.com
http://www.whatismyip.com/automation/n09230945.asp
http://externip.com

编辑,您也可以在 Windows 中运行 ip.vbs 文件,而无需转到 DOS 窗口,它只会显示在一个小弹出窗口中。

答案4

要获取外部 IP 地址,您需要询问网络外部的某个东西,并让其报告您的 IP 地址“看起来”是什么。这可以通过脚本来实现,即查询一个易于解析结果的页面并从中获取 IP 地址,但 Windows 中没有内置工具可以告诉您您的外部 IP 地址是什么。您需要自己编写一个或找到一个并下载它。

相关内容