我有一个 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是“错误的”,我无法通过它访问我的路由器,而我可以通过我的路由器告诉我的IP(我已设置)端口转发之类的东西)。
我目前正在尝试编写一个Python脚本来正确自动更新我的No-IP动态IP(因为我的路由器发送了错误的IP),并且我需要找到一种方法从路由器获取真实的公共IP,但我发现实际上没有任何关于如何做到这一点的信息。我搜索过 TP-Link API 或 Linux 实用程序,它们允许我获取有关路由器的一点信息,但无济于事,因为互联网上的所有内容要么是我从在线服务(如(ifconfig.me错误的)公共 IP)或本地 IP。
我正计划为路由器的控制面板编写一个网络爬虫,但我想首先知道是否可以做些什么来更轻松地获得正确的IP。
编辑:我想澄清一下:我已经设置了端口转发,以便能够通过 SSH 远程连接到我的计算机。我可以ssh user@10.194.12.4毫无问题地进行操作,就像在本地网络上一样。我不能对90.x.x.xIP 做同样的事情。这就是为什么我将10.x.x.xIP 称为真正的公共 IP,而将其90.x.x.x称为错误的 IP。我的网络可以通过10.x.x.xIP 完美访问。
编辑 2:没关系,我刚刚发现我一直在同一 ISP 下的网络访问网络,所以我在不知不觉中通过一个非常大的 LAN 而不是通过实际的 Internet 访问我的计算机 >:P