[英]How do I get my public ip address in a shell script?
此命令返回我的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
另一种方法是:
sudo apt install stuntman-client
然后
myip=$(stunclient --localport 8888 stun.l.google.com 19302|grep Mapped|cut -d ":" -f 2|tr -d " ")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.