如何在 Windows 11 中从受限互联网使用 PowerShell 查找公共 IP 地址

如何在 Windows 11 中从受限互联网使用 PowerShell 查找公共 IP 地址

如何使用 powershell 或命令提示符查找 Windows 11 PC 的公共 IP 地址。尝试了 ipconfig 和 gip(powershell),它们都显示与浏览器中的 ip 不同的 ip。

IPv4 显示在https://whatismyipaddress.com在此 powershell 命令 (Invoke-WebRequest ifconfig.me/ip) 中显示正确。Content.Trim()

如果 whatismyipaddress.com 或 ifconfig.me 被阻止怎么办?或者 VPN 已连接。目标是找到不依赖这些站点​​的公共 IP。

答案1

如果 whatismyipaddress.com 或 ifconfig.me 被阻止怎么办?或者 VPN 已连接。目标是找到不依赖这些站点​​的公共 IP。

你可能需要依赖一些外部网站。如果网站 A 被屏蔽,请使用网站 B。如果系统没有任何形式的互联网访问,那么它不一定根本不是“公共” IPv4 地址。(毕竟,“公共 IP 地址”的常见定义是“用于 Internet 访问的地址”。)

通常,系统仅“具有”直接分配给它的 IPv4 地址(即显示在“ipconfig”中的地址)。当系统位于 NAT 后面时,其 Internet 访问使用属于不同的系统——路径上的路由器或 NAT 网关,用于重写数据包在飞行中拥有一些公共地址而不是机器自己的私有地址。

(因此,如果系统只有一个私有地址没有互联网接入,那么这种重写就根本不可能发生——而且公共地址也永远不会被使用。实际上,没有公开演讲。

您的系统要知道这种重写的结果(或者甚至知道它正在执行)的唯一方法是询问路由器,或者询问外部系统“我来自哪个 IP 地址?”。如果只有一层 NAT 和一层路由(家用路由器将通过 UPnP IGD 告诉您它们的公共地址,如果您可以在upnpcWindows 上安装它,您可以尝试使用该命令),第一种方法可能有效,但在任何大型企业网络中都不起作用。(在大型企业网络中,可能很容易有多个“公共”IP 地址 - 即使来自同一系统的流量也可能根据情况在其上放置不同的地址。)

因此,您只剩下第二种方法,即询问某个远程系统。(如果您担心第三方 HTTP 服务会被阻止,请运行您自己的服务。)这不一定需要通过 HTTP 完成 - STUN 是 VoIP 中确定这一点的常用协议,并且有一些“我的 IP 是什么”服务可以通过 DNS 工作(尽管它们无法可靠地检测 DNS 代理)。

nslookup -q=A whoami.akamai.net. ns1-1.akamaitech.net.
nslookup -q=A o-o.myaddr.l.google.com. ns2.google.com.
nslookup -q=A myip.opendns.com. resolver1.opendns.com.

相关内容