有没有不需要访问网络即可获取本机外网 IP 地址的方法

2021-05-04 19:16:25 +08:00
 HankLu
4105 次点击
所在节点    Python
22 条回复
Rxianbei
2021-05-04 19:17:25 +08:00
一般的家庭网络是通过路由器在连接光猫拨号上网的,这是没有办法的
learningman
2021-05-04 19:18:29 +08:00
你不知道上面套了几层 NAT,NAT 后无法感知
raysonx
2021-05-04 19:20:18 +08:00
不能,因为“外网 IP”不属于你。
imn1
2021-05-04 19:23:45 +08:00
以前的旧路由器,在某个页面是显示了外网 ip 的,以前就靠内网读取这个页面
但新路由没有这个,作罢了
HankLu
2021-05-04 19:29:05 +08:00
现在有个很麻烦的、需要白名单才能访问的 url,我需要第一步访问网络获取本地 ip,第二步通过带 key 的 api 把 ip 添加到白名单,第三步才能访问这个 url 。
什么人才才能想出这个绝妙的成倍增加工作量的逻辑啊。大婶们我怎么优化我的三部曲以尽量降低出错后面的处理?
MakeItGreat
2021-05-04 19:31:16 +08:00
中转
HankLu
2021-05-04 19:34:30 +08:00
@MakeItGreat 大神,我这个 url 就是个中转站(带里)
yanqiyu
2021-05-04 19:47:02 +08:00
大概不行,除非...
1) 你的机器 ip 就是外网 ip
2) 你的网关等设备提供查询公网 ip 的接口
或者想办法让白名单放行某个通用的 ip 地址查询 api
caliburn1994
2021-05-04 19:49:34 +08:00
为什么不访问外部网络?访问网络的话

```
curl -s ipinfo.io/ip
```
ysc3839
2021-05-04 19:55:54 +08:00
没经过 NAT 转换的话,可以,否则不行。
kennylam777
2021-05-04 20:01:23 +08:00
家用路由器還有 upnp 一招, BitTorrent clients, PlayStation 及 Xbox 等等都會用到
gjquoiai
2021-05-04 20:05:17 +08:00
1. 自建机房的话应该是固定的一组出口 ip
2. 公有云一般都提供了以编程方式查询实例出口 ip 的方法
HankLu
2021-05-04 20:13:19 +08:00
已解决,我这个没有路由转接,直接用 IPs = socket.gethostbyname_ex(socket.gethostname())[-1]获取到了,这一下降低了我一半的工作量
ClericPy
2021-05-04 20:18:50 +08:00
如果实在懒, curl http://httpbin.org/get 算了
ClericPy
2021-05-04 20:19:14 +08:00
抱歉没注意 "不需要访问网络"... 溜了
dorothyREN
2021-05-04 23:19:17 +08:00
直接 tracert 判断出口 IP 就行
opengps
2021-05-04 23:47:42 +08:00
这个真没有,因为你并不知道你的最终公网出口具体在什么位置,如果确定了出口位置,那么可以去这个位置查一下公网 ip
opengps
2021-05-04 23:48:36 +08:00
另外还有个问题,公网的出入口,有可能不唯一
Jooooooooo
2021-05-05 00:29:55 +08:00
好像是你没上地铁得知道自己会坐哪, 除非位置是提前分配的.
no1xsyzy
2021-05-05 02:53:15 +08:00
也可以尝试要个公网 IP,那样的话路由器可能有页面能找到 IP = 公网 IP
但也可能要不到。
出口不唯一的话甚至你联网获取了 IP 都不一定对

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX