我已经看到了这个问题,但它并没有解决我当前的问题(它是关于获取当前机器的外部 IP 地址):
返回外部 IP 的 Windows 命令
我所在的网络有多个外部 IP 地址。我需要确定可能使用不同外部地址的内部计算机的外部地址。显然,我可以转到网络外的计算机并从那里 ping 它,但我该如何从里面网络?
我希望将其纳入自动化流程,因此最好使用 DOS 命令或 PowerShell 脚本。
答案1
我认为您唯一能做到这点的方法是使用外部服务。您可以将 system.Net.WebClient Powershell 库与网站一起使用http://icanhazip.com
,它只返回您的外部 IP 地址。
$obj = New-Object system.Net.WebClient;
$ip = $obj.downloadString("http://icanhazip.com")
答案2
ifconfig.me 目前对我来说有点慢,但是它有效。
从命令行
curl ifconfig.me
curl ifconfig.me/ip -> IP Adress
curl ifconfig.me/host -> Remote Host
curl ifconfig.me/ua ->User Agent
curl ifconfig.me/port -> Port
另一个是
C:\>wget -O abc.a ifconfig.me/ip 2>nul & type abc.a
(显然,你可以把那行 wget 放在一个 bat 文件中,这样就可以有效地为其创建快捷方式)
你必须下载 wget(最新版本在 cygwin 中/与 cygwin 捆绑在一起)或者使用 curlhttp://curl.haxx.se/download.html
我想补充一点,从技术上讲,您找到的是路由器/家庭路由器/NAT 设备的外部接口的 IP。因此,该设备与计算机插入的一侧相反。该设备面向墙壁并通过墙壁连接到您的 ISP 的一侧。那里的网络接口的 IP。
答案3
编辑:划掉,我把网关和外部 IP 搞混了。不过我找到了这个,里面有很多有用的信息。
我确信一定有一种简单的方法可以在本地完成,但是变量实在太多了。
答案4
我遇到了类似的问题,所以我编写了简单的命令行工具,你可以从 sourceforge 下载 OuterIP。