Top Menu

如何获取本机IP地址

很多时候在更换IP后需要获取本机的最新IP地址

公共API

使用公共API的好处是比较稳定,不会因为服务器宕机导致服务不可用,但是缺点就是有使用频率限制,特别是初次分配到新IP的时候更有可能会碰到这个情况。

以下为几个不需要注册就可以直接调用的公共API

1.ip-api.com

API:http://ip-api.com/json/?fields=258047&lang=en

返回值:json

限制:150 请求/分钟,2 请求/秒

2.ipapi.co

API示例:https://ipapi.co/json/

限制:30000 请求/月,1000 请求/天

3.ipify.org

API示例:https://api.ipify.org/?format=json

限制:无请求限制

PHP调用示例

但是通过API调用获取本机IP地址有一些潜在的问题,这些问题会发生在不需要重启主机就可以更改IP的服务器上,当服务器对应多个IP的时候,调用API只能获取到主机绑定的原始IP地址,但其实我们需要获取的是分配给服务器的动态IP地址,DigitalOcean和Google Cloud Platform都存在这个问题,但这个问题似乎是无解的,因为在服务器端看起来,并不存在什么动态IP,动态IP只不过是一个镜像IP的跳转而已。

目前有两种办法可以解决动态IP的问题,

1.被动监听入站请求,然后把所有入站的目的IP地址都记录下来,然后判断是否已经更换了新的动态IP。但是问题是得有新IP的入站请求,否则还是没办法知道新的IP地址。所以得更换IP之后主动用新IP访问一下某个页面来告诉服务器新的IP地址。

2.主动调用DO或GCP的管理API接口获取最新的动态IP地址

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes