是否可以通过 Internet 获取我的 nat ip 地址?我知道我可以看到我的 ISP 地址,但看不到我的内部地址。我记得曾经见过这种情况,但我认为这是一个 java 小程序,而不仅仅是一个网页。可以使用常规网页来完成吗?
编辑澄清:我想知道是否有办法有人可以从互联网上获取我内部网络上的本地 IP。
答案1
您好,我可以通过互联网获取我的 nat ip 地址吗?
通常情况下不会。您的内部地址将映射到路由器公共地址,外部任何人都无法看到这些信息。当他们重新连接您时(作为活动连接或您建立的连接的响应数据包),您的路由器会将公共地址重新映射回您的内部 IP 地址(还会对数据包内容进行任何必要的更改),而外部对此一无所知。
但是,如果外部人员以某种方式获得您的路由器转换表(其中保存了映射和连接状态)的访问权限,那么他们确实可以了解您的内部 IP。
如果您主动向您连接的人通告您的内部 IP,他们也可以了解您的内部 IP。这种情况可以通过多种方式发生。应用程序可能只是从您的网络设备读取您的内部 IP,并在连接时转发它。您可能已经看到这种情况发生。例如,启用 Java 后,浏览器可以通过运行恶意网页脚本,在您不知情的情况下不情愿地发送您的内部 IP。
但请注意,这样做也有合法用途,例如为了控制和报告滥用而记录内部和外部 IP。
但是,内部 IP 对外部的任何人来说都没有实际用处。他们不能使用它来访问您的机器。所以你不必为此担心。
答案2
据我所知,只有当他们能够进入你的路由器设置或者路由器上有 NAT/虚拟服务器来告诉外部请求在给定端口上使用哪个内部 IP 时。
除此之外,路由器是外界唯一能看到的东西,它有你的外部 IP。不过我敢肯定有人可以破解路由器来获取这些信息。
答案3
我正在使用https://www.whatismyip.com/我很惊讶他们能看到我的 NAT 地址。我查看了 javascript,它正在通过 ICE 运行 RTCPeerConnection
答案4
编辑澄清:我想知道是否有办法有人可以从互联网上获取我内部网络上的本地 IP。
答案通常是“视情况而定”。除了 @A Dwarf 提到的 Java 和其他应用程序的可能性之外,从纯网络/TCP 的角度来看,您基本上是在问是否有人可以检测到您正在使用 NAT。所以答案是不;如果可能的话你首先就不必使用 NAT :)