获取自己的公网地址

有个需求需要知道自己的公网IP地址,网上的方法大概有如下几种:

1
curl ipinfo.io

通过访问第三方网站获取自己的IP,优点是简单,缺点是不够稳定,运气不好会经常访问超时。

还有一种是通过DNS

1
dig @resolver1.opendns.com ANY myip.opendns.com +short

这种方法的问题是 获取的IP未必是自己的真实的IP,不够可靠。

后来想了想,与其用别人提供的服务,不如自己写一个,原理也非常简单,就是写一个方法,通过Nginx获取到来访者的公网IP,然后将其回显到页面上。