原文: https://www.tecmint.com/find-linux-server-public-ip-address/

  1. 使用dig进行dns查询

    opendns.com DNS公共服务器提供这一项功能。当客户端进行dns查询的时候服务端能够得到客户端的公网ip。对一个特定的域名进行查询。opendns会返回客户端ip达到效果

    dig +short myip.opendns.com @resolver1.opendns.com
    120.88.41.175
    

    大概找了一下。国内的公共DNS并没有提供这种服务。因为默认使用的UDP协议。应该比TCP更快一些

  2. 使用host命令

    host命令也是用来进行DNS查询,但是感觉dig要高大上一点。实际原理和方案一是一样的

     host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
     120.88.41.175
    
  3. 使用wget命令

    当我们使用http协议访问服务端的时候,服务端能够获取到客户端公网ip。提供这种服务的网站特别多

     $ wget -qO- http://ipecho.net/plain | xargs echo
     $ wget -qO - icanhazip.com
     120.88.41.175
    
  4. 使用curl命令行下载

    和上面的方案原理上并没有变化

     curl ifconfig.co
     curl ifconfig.me
     curl icanhazip.com
    

Note:

  1. 国内使用建议用curl ifconfig.cat。国外建议使用curl ipinfo.io/ip
  2. 国情特殊。个人用户现很多公网ip都不是固定的。甚至于某一段时间内都不是固定的。所以获取到变动的ip也不足为奇。如下图

results matching ""

    No results matching ""