我如何获得我的公共IP地址在一个shell脚本?

此命令返回我的IP地址与附加信息。

dig @resolver1.opendns.com myip.opendns.com ; <<>> DiG 9.6-ESV-R4-P3 <<>> @resolver1.opendns.com myip.opendns.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48206 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;myip.opendns.com. IN A ;; ANSWER SECTION: myip.opendns.com. 0 IN A 122.167.119.178 ;; Query time: 199 msec ;; SERVER: 208.67.222.222#53(208.67.222.222) ;; WHEN: Fri May 18 11:46:51 2012 ;; MSG SIZE rcvd: 50 

我只想从中提取我的IP地址。 我怎样才能从dig输出提取我的IP地址?

不要让这比它需要更难…使用+short

 [mpenning@Bucksnort ~]$ dig +short mike.homeunix.com 76.21.48.169 [mpenning@Bucksnort ~]$ 

如果你正在使用bash shell,这将为你工作

 grep -A1 "ANSWER SECTION" ip_file.txt | awk '{if(NF==5)print $5;}' 

注意:我的假设是你打算提取IP后打印“答案部分”

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

从我的博客: http : //blog.valch.name/2016/03/17/show-your-ip/