2012-05-18 40 views
6

Lệnh này trả về địa chỉ ip của tôi với thông tin bổ sung.Làm cách nào để nhận địa chỉ ip công khai của tôi trong tập lệnh shell?

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 

Tôi chỉ muốn trích xuất địa chỉ ip của mình từ này. Làm thế nào tôi có thể trích xuất địa chỉ ip của tôi từ đầu ra ?

+0

các công trình sau đây dành cho tôi "dig @ resolver1.opendns.com myip.opendns.com | grep^myip.opendns.com | tr '\ t': | cut -d: -f5 " –

+0

cũng thử curl ifconfig.me – rampr

Trả lời

3

Nếu bạn đang sử dụng bash shell này sẽ làm việc cho bạn

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

LƯU Ý: Giả định của tôi là bạn đang có kế hoạch để trích xuất các ip in sau khi "ĐÁP PHẦN"

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

Từ blog của tôi: http://blog.valch.name/2016/03/17/show-your-ip/

+0

Tại sao bạn lại muốn sử dụng shortener? Hơn nữa, đây là một script shell chứ không phải là một URL. –

+0

vì kết quả chỉ nên có địa chỉ IP, mà không có thông tin bổ sung, đó là lý do tại sao tôi sử dụng nó. Hơn nữa, đây là một lệnh shell và được cho là một lệnh, không phải là một kịch bản URL chỉ cho một ví dụ về sử dụng – valch85

+0

Được rồi, nhờ làm rõ. –

Các vấn đề liên quan