问题描述
有时,我们需要向对方提供我们的公网地址,或者验证我们的请求是否通过代理服务器(此时应该返回代理服务器地址)
该笔记将记录:如何查看自己的公网地址。
解决方案
通过第三方 HTTP 站点
curl "http://ifconfig.me" curl "http://icanhazip.com" curl "http://ipecho.net/plain" curl "http://ifconfig.co" curl "https://ip.sb" ################################################################################ curl checkip.amazonaws.com curl ifconfig.me curl icanhazip.com curl ipecho.net/plain curl ifconfig.co ## store output in $server_ip ## server_ip="$(curl ifconfig.co)" ## Display it ## printf "Server public ip4 %s\n" $server_ip
通过自建的 HTTP 服务
我们使用 Nginx 来返回公网地址(需要具有公网服务器)使用如下配置:
server { listen 80; server_name ifconfig.toolbox.d3rm.org; location / { return 200 $remote_addr; } }
当在命令行中使用 curl 发送 http 请求时,将返回网络地址:
# curl ifconfig.toolbox.d3rm.org 1.2.3.4.5
通过 DNS 获取
dig +short myip.opendns.com @resolver1.opendns.com dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
相关链接
淘宝 IP 地址库:https://ip.taobao.com/ipSearch
参考文献
How To Find My Public IP Address From Command Line On a Linux