linux获取公网IP

Posted on Posted in bash
Tips: 本文创建于2015年9月18日,已超过 2 年,内容或图片可能已经失效!

linux在服务器内,获取公网IP
Curl 纯文本格式输出:

  1. curl https://api.ipify.org/  
  2. curl icanhazip.com    
  3. curl ifconfig.me    
  4. curl curlmyip.com    
  5. curl ip.appspot.com    
  6. curl ipinfo.io/ip    
  7. curl ipecho.net/plain    
  8. curl www.trackip.net/i    

curl JSON格式输出:

  1. curl ipinfo.io/json  
  2. curl ifconfig.me/all.json  
  3. curl www.trackip.net/ip?json (有点丑陋)  

curl XML格式输出:

  1. curl ifconfig.me/all.xml  

curl 得到所有IP细节 (挖掘机)

  1. curl ifconfig.me/all  

使用 DYDNS (当你使用 DYDNS 服务时有用)

  1. curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'   
  2. curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"  

使用 Wget 代替 Curl

  1. wget http://ipecho.net/plain -O - -q ; echo  
  2. wget http://observebox.com/ip -O - -q ; echo  

使用 host 和 dig 命令
如果有的话,你也可以直接使用 host 和 dig 命令。

  1. host -t a dartsclink.com | sed 's/.*has address //'  
  2. dig +short myip.opendns.com @resolver1.opendns.com  

bash 脚本示例:

  1. #!/bin/bash  
  2. PUBLIC_IP=`wget http://ipecho.net/plain -O - -q ; echo`  
  3. echo $PUBLIC_IP  

参考https://linux.cn/article-6079-1.html

获取 ip138 的公网 IP

curl -s 取消curl 过程中的资源进度

  1. curl -s http://1111.ip138.com/ic.asp | iconv -f gb2312 | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"  

grep的正则匹配

-E选项表示使用grep扩展的正则表达式
-o选项是只显示匹配到的字符串

匹配从0.0.0.0到999.999.999.999的模式

  1. "([0-9]{1,3}[\.]){3}[0-9]{1,3}"  

IPv4

  1. "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"  
» 转载请注明来源:若我若鱼 » linux获取公网IP

Leave a Reply

Your email address will not be published. Required fields are marked *

twenty + nine =