Để tìm ip bên ngoài, bạn có thể sử dụng các dịch vụ dựa trên web bên ngoài hoặc sử dụng các phương pháp dựa trên hệ thống. Cách dễ dàng hơn là sử dụng dịch vụ bên ngoài, các ifconfig
giải pháp dựa trên sẽ chỉ hoạt động trong hệ thống của bạn nếu bạn không đứng sau a NAT
. hai phương pháp đã được thảo luận chi tiết dưới đây.
Tìm IP bên ngoài bằng các dịch vụ bên ngoài
Cách dễ nhất là sử dụng dịch vụ bên ngoài thông qua trình duyệt dòng lệnh hoặc công cụ tải xuống. Vì wget
có sẵn theo mặc định trong Ubuntu, chúng tôi có thể sử dụng điều đó.
Để tìm ip của bạn, hãy sử dụng-
$ wget -qO- https://ipecho.net/plain ; echo
Lịch sự :
Bạn cũng có thể sử dụng lynx
(trình duyệt) hoặc curl
thay cho wget
các biến thể nhỏ cho lệnh trên, để tìm ip bên ngoài của bạn.
Sử dụng curl
để tìm ip:
$ curl https://ipecho.net/plain
Để sử dụng đầu ra được định dạng tốt hơn:
$ curl https://ipecho.net/plain ; echo
Phương pháp nhanh hơn (được cho là nhanh nhất) sử dụng dig
với OpenDNS
trình phân giải:
Các câu trả lời khác ở đây đều chuyển qua HTTP đến một máy chủ từ xa. Một số trong số chúng yêu cầu phân tích cú pháp đầu ra hoặc dựa vào tiêu đề Tác nhân người dùng để làm cho máy chủ phản hồi bằng văn bản thuần túy. Họ cũng thay đổi khá thường xuyên (đi xuống, thay đổi tên, đăng quảng cáo, có thể thay đổi định dạng đầu ra, v.v.).
- Giao thức phản hồi DNS được chuẩn hóa (định dạng sẽ vẫn tương thích).
- Các dịch vụ DNS trong lịch sử (OpenDNS, Google Public DNS, ..) có xu hướng tồn tại lâu hơn và ổn định hơn, có thể mở rộng và thường được chăm sóc hơn bất kỳ dịch vụ HTTP mới nào của hipismismip.com đang nóng hiện nay.
- (đối với những chuyên viên máy tính quan tâm đến tối ưu hóa vi mô), phương pháp này vốn đã nhanh hơn (chỉ trong vài giây).
Sử dụng đào với OpenDNS làm trình phân giải:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Sao chép từ: https://unix.stackexchange.com/a/81699/14497
Tìm IP bên ngoài mà không cần dựa vào các dịch vụ bên ngoài
- Nếu bạn biết tên giao diện mạng của bạn
Nhập nội dung sau vào thiết bị đầu cuối của bạn:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
Ở phía trên, thay thế <interface_name>
với tên của giao diện thực tế của bạn, ví dụ như: eth0
, eth1
, pp0
, vv ...
Cách sử dụng ví dụ:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
- Nếu bạn không biết tên giao diện mạng của mình
Nhập thông tin sau vào thiết bị đầu cuối của bạn (cái này lấy tên và địa chỉ IP của mọi giao diện mạng trong hệ thống của bạn):
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
Cách sử dụng ví dụ:
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
NB: Đầu ra là chỉ định và không có thật.
Lịch sự: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
CẬP NHẬT
LANG=c
đã được thêm vào các ifconfig
ứng dụng dựa trên, để nó luôn cung cấp đầu ra tiếng Anh, bất kể cài đặt ngôn ngữ.