Tôi có thể sử dụng lệnh * nix nào để tìm IP bên ngoài?


Câu trả lời:



8
đào + ngắn myip.opendns.com

Điều này chỉ hoạt động nếu bạn đang sử dụng OpenDNS làm máy chủ dns của bạn.

Nếu bạn không, một trong số này sẽ hoạt động:

đào + ngắn myip.opendns.com @ 208.67.222.222
đào + ngắn myip.opendns.com @ 208.67.220.220
đào + ngắn myip.opendns.com @ 208,67.222.222 @ 208,67.220.220

1
Không hoạt động trên MacOS 10.5, Ubuntu 8.04 hoặc Ubuntu 9.04 của tôi.
Drew Stephens

Điều thú vị là nó có trên Ubuntu 8.10 của tôi.
Brad Gilbert

Có lẽ là do tôi sử dụng opendns.
Brad Gilbert

+1 để sử dụng DNS để tìm IP (thay vì http). Bạn cũng có thể chỉ định máy chủ dns bằng tên của nó, ví dụ: @resolver1.opendns.com(để dễ đọc)
jfs



2

Người ta phải sử dụng máy chủ của OpenDNS để sử dụng điều này ... Bạn có thể truy vấn một máy chủ DNS nhất định bằng cách đào như thế:

đào + ngắn myip.opendns.com @ 208.67.222.222

2

Bạn có thể sử dụng curl để lấy trang từ một cái gì đó như whatismyip và sau đó lấy các mảnh ra. Tôi đã sử dụng whatismyipaddress.com trong ví dụ này ... rõ ràng các trường sẽ khác nhau với các dịch vụ khác nhau.

curl -s http://whatismyipaddress.com/ | grep LOOKUPADDRESS | awk '{ print $4 }'

1

Tôi chỉ chạy một traceroute đến một nơi nào đó trên internet và tìm kiếm hop từ mạng cục bộ của chúng tôi.

có lẽ có một cách tốt hơn?




0

bạn có thể sử dụng lệnh ifconfig để liệt kê tất cả các giao diện và địa chỉ IP được liên kết của chúng.

vì vậy, nếu bạn biết giao diện internet của mình là ppp0, bạn có thể chạy

$ ifconfig ppp0
ppp0 Liên kết mã hóa: Giao thức điểm-điểm
          inet addr: XXXX.X PtP: YYYY Mặt nạ: 255.255.255.255
          LÊN POINTOPOINT CHẠY NỀN TẢNG ĐA NĂNG MTU: 1444 Số liệu: 1
          Các gói RX: 198986 lỗi: 0 rớt: 0 tràn: 0 khung: 0
          Các gói TX: 122929 lỗi: 0 rớt: 0 tràn: 0 sóng mang: 0
          va chạm: 0 txqueuelen: 3
          Các byte RX: 134195571 (127,9 MiB) TX byte: 17101701 (16.3 MiB)

XXXX sẽ là địa chỉ IP của bạn. YYYY là địa chỉ IP của bước nhảy tiếp theo.

sau đó bạn có thể xử lý hậu quả đầu ra của ifconfig bằng grep / awk / sed / cut / perl / bất cứ điều gì để trích xuất chỉ IP.

Một cách khác, nếu bạn đã cài đặt các công cụ iproute, là sử dụng lệnh ip. ví dụ

$ ip addr danh sách ppp0
21842: ppp0: mtu 1444 qdisc htb trạng thái UNKNOWN qlen 3
    liên kết / ppp
    inet XXXX ngang hàng YYYY / phạm vi 32 toàn cầu ppp0

Điều đó có lẽ dễ đọc hơn và chắc chắn dễ phân tích hơn:

$ ip addr danh sách ppp0 | awk '/ inet / {in $ 2}'
XXXX

- Có khả năng bất kỳ IP nào trong ifconfig sẽ không khớp với IP Internet thực (trong trường hợp là biNAT) - Trong FreeBSD không có gói iproute2, vì vậy lệnh ip không được áp dụng
SaveTheRbtz

đúng, tôi không sử dụng NAT để tôi không bao giờ xảy ra với tôi .... nó dường như "sai" đối với tôi khi sử dụng dịch vụ bên ngoài để biết thông tin bạn có thể truy vấn hệ thống của riêng mình. ngay cả với NAT, tôi vẫn muốn tìm ra cách truy vấn bộ định tuyến đang thực hiện NAT (có lẽ thông qua truy vấn SNMP) hơn là dựa vào một dịch vụ bên ngoài có thể có hoặc không có sẵn khi tôi cần.
cas

@Craig, Cách tiếp cận của bạn là tốt. Tuy nhiên, nó không phải là IP bên ngoài trừ khi bạn có thể tiếp cận nó với giá trị đó từ bên ngoài. Bạn làm phải dựa vào một điểm bên ngoài cho câu trả lời này. Ý tưởng là tìm một điểm bên ngoài đáng tin cậy (ít nhất là nhiều hơn điểm chu vi của bạn) cho truy vấn. OpenDNS là một điểm tốt.
nik

@nik: trường hợp có khả năng duy nhất mà IP của bộ định tuyến biên của bạn không phải là IP bên ngoài là khi bạn đứng sau nhiều lớp NAT ... trong trường hợp đó, giải pháp chính xác là chuyển sang dịch vụ không bị tổn thương não càng sớm càng tốt . Ngoài ra, vấn đề với việc tìm nạp URL để tìm ra IP của bạn là nó chỉ cho bạn biết IP của máy chủ thực sự tìm nạp nó - có thể là một proxy loại bỏ các tiêu đề.
cas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.