获取4G路由器真实公网IP

获取4G路由器真实公网IP

我有一个 4G 路由器 (TP-Link Archer MR200),它的 GUI 告诉我它有一个公共 IP(仅举个例子)10.194.12.4。如果我这样做curl ifconfig.me,我会得到一个不同的 IP,比如90.153.17.52。据我所知,这与 CGNAT 以及我的 SIM 运营商如何处理 SIM IP 地址有关。但是,我从ifconfig.me(或任何其他“我的 IP 是什么”类型的服务)获得的 IP 是“错误的”,我无法通过它访问我的路由器,而我可以通过路由器告诉我的那个访问(我已经设置了端口转发和类似的东西)。

我目前正在尝试编写一个 Python 脚本来自动正确更新我的 No-IP 动态 IP(因为我的路由器发送了错误的 IP),我需要找到一种方法来获得它真的我试图从路由器获取公共 IP,但我几乎找不到任何关于如何做到这一点的信息。我搜索了 TP-Link API 或 Linux 实用程序,它们允许我获取有关路由器的一点信息,但无济于事,因为互联网上的所有内容要么是我从在线服务ifconfig.me(如错误的您可以使用公网 IP 地址 (public IP) 或本地 IP 地址。

我计划为路由器的控制面板编写一个网络抓取工具,但首先我想知道是否可以做些什么来更轻松地获取正确的 IP。

编辑:我想澄清一下:我已经设置了端口转发,以便能够远程 SSH 到我的计算机。我可以毫无问题地做到这一点,就像我在本地网络上所做的一样。我无法对 IP 执行相同的操作。这就是为什么我将IP 称为真正的公共 IP,而将其称为错误的 IP。我的网络可以通过 IP 完全访问。ssh [email protected]90.x.x.x10.x.x.x90.x.x.x10.x.x.x

编辑 2:没关系,我刚刚发现我一直在从同一 ISP 下的网络访问网络,因此我在不知情的情况下通过一个非常大的 LAN 而不是通过实际的互联网访问我的电脑 >:P

答案1

IP 地址 10.xxx 属于互联网的私有或保留 IP 地址空间。您无法从互联网访问它。它由您的 ISP 分配给您使用,但在 ISP 的本地网络之外无效。

的 IP 地址90.153.17.52可能是正确的 IP 地址,但您很可能与 ISP 的其他用户共享该地址,因为 CGNAT 就是这样工作的。因此它也不能用于从互联网访问您的计算机。

让您的计算机可从互联网访问的唯一方法是向您的 ISP 索取静态 IP 地址,这可能需要额外付费。一旦您获得该静态地址,您使用的两种方法都将产生相同的 IP 地址,并且不会有任何“错误”的 IP 地址。

参考:维基百科 运营商级 NAT(CGN 或 CGNAT)

答案2

你没有找到任何有关获取“真实”公共 IP 地址的信息的原因仅仅是因为你的路由器根本没有公网IP地址。

其 GUI 中显示的 10.xxx 地址是私人的地址(尽管 GUI 将其称为“公共”),但它仍然是您的 ISP(SIM 运营商)为路由器分配的真实地址。

“我的 IP 是什么”服务显示的内容也没有错 - 它是您的 ISP 的 NAT 网关使用的地址,这正是这些服务要报告的内容。(您的路由器位于 ISP 的全局 CGNAT 内,就像您的计算机拥有私有地址并位于路由器的本地 NAT 内一样,外部服务无法区分这两种情况。)

换句话说,你的 ISP 没有向你发放任何您可以使用 IPv4 地址从外部访问您的 4G 路由器。您需要给他们打电话,看看他们是否提供专用公共 IP 地址作为额外服务。

答案3

其他人已经讨论了您的问题的性质。这里有一个解决方案可以避免您实际上没有 IP 本身这一事实:如果 IPv6 是一种选择,您可以保留 IPv6 代理的服务,其中有很多。例如。Hurricane Electric 提供免费的 IPv6 代理。从表面上看,它的工作方式类似于 VPN,但会为您分配一个巨大的 IPv6 地址块。在后台,会执行各种优化。由于许多代理都是位于许多数据中心的大型参与者,因此他们可以有效地路由您的流量,而无需您的数据包走很远。

https://ipv6.he.net

相关内容