Apa perintah berbasis * nix yang dapat saya gunakan untuk menemukan IP eksternal saya?


Jawaban:



8
gali + short myip.opendns.com

Ini hanya berfungsi jika Anda menggunakan OpenDNS sebagai server dns Anda.

Jika tidak, salah satunya harus berfungsi:

gali + short myip.opendns.com @ 208.67.222.222
gali + short myip.opendns.com @ 208.67.220.220
gali + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

1
Tidak berfungsi di MacOS 10.5 saya, Ubuntu 8.04, atau Ubuntu 9.04.
Drew Stephens

Menarik yang dilakukannya di Ubuntu 8.10 saya.
Brad Gilbert

Mungkin karena saya menggunakan opendn.
Brad Gilbert

+1 untuk menggunakan DNS untuk mengetahui IP (bukan http). Anda juga dapat menentukan server dns menggunakan namanya misalnya, @resolver1.opendns.com(untuk keterbacaan)
jfs


2
lynx -dump http://www.pcmesh.com/ip-check.cgi | awk '/REMOTE_ADDR/{print $2}'

2

Seseorang harus menggunakan server OpenDNS untuk menggunakan ini ... Anda dapat meminta server DNS tertentu dengan menggali seperti itu:

gali + short myip.opendns.com @ 208.67.222.222

2

Anda dapat menggunakan ikal untuk mendapatkan halaman dari sesuatu seperti whatismyip dan kemudian mengeluarkannya. Saya menggunakan whatismyipaddress.com dalam contoh ini ... jelas bidangnya akan berbeda dengan layanan yang berbeda.

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

1

Saya hanya menjalankan traceroute ke suatu tempat di internet dan mencari hop dari jaringan lokal kami.

mungkin ada cara yang lebih baik?




0

Anda dapat menggunakan perintah ifconfig untuk membuat daftar semua antarmuka dan alamat IP yang terkait.

jadi, jika Anda tahu antarmuka internet Anda adalah ppp0, Anda dapat menjalankannya

$ ifconfig ppp0
ppp0 Link encap: Protokol Point-to-Point
          inet addr: XXXX.X PtP: YYYY Mask: 255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1444 Metrik: 1
          Paket RX: Kesalahan 198986: 0 jatuh: 0 overruns: 0 bingkai: 0
          Paket TX: 122929 kesalahan: 0 jatuh: 0 overruns: 0 operator: 0
          tabrakan: 0 txqueuelen: 3
          RX byte: 134195571 (127,9 MiB) TX byte: 17101701 (16,3 MiB)

XXXX akan menjadi alamat IP Anda. YYYY adalah alamat IP dari hop berikutnya.

Anda dapat memposting proses ifconfig dengan grep / awk / sed / cut / perl / apa pun untuk mengekstrak IP saja.

Alternatif lain, jika Anda menginstal alat iproute, adalah dengan menggunakan perintah ip. misalnya

$ ip daftar addr ppp0
21842: ppp0: mtu 1444 qdisc htb state UNKNOWN qlen 3
    tautan / ppp
    inet XXXX peer YYYY / 32 lingkup global ppp0

itu mungkin lebih mudah dibaca dan tentu saja lebih mudah diurai:

$ ip daftar addr ppp0 | awk '/ inet / {print $ 2}'
XXXX

- Ada kemungkinan bahwa setiap IP di ifconfig tidak akan cocok dengan IP Internet asli (dalam kasus biNAT) - Dalam FreeBSD tidak ada paket iproute2, jadi perintah ip tidak berlaku
SaveTheRbtz

benar, saya tidak menggunakan NAT sehingga tidak pernah terpikir oleh saya untuk .... sepertinya "salah" bagi saya untuk menggunakan layanan eksternal untuk informasi Anda dapat menanyakan sistem Anda sendiri. bahkan dengan NAT, saya masih lebih suka mencari tahu bagaimana cara meminta router melakukan NAT (mungkin melalui permintaan SNMP) daripada mengandalkan layanan eksternal yang mungkin atau mungkin tidak tersedia saat saya membutuhkannya.
cas

@Craig, pendekatan Anda baik-baik saja. Namun, ini bukan IP eksternal kecuali Anda dapat mencapainya dari luar. Anda tidak harus bergantung pada titik eksternal untuk jawaban ini. Idenya adalah untuk menemukan titik eksternal yang andal (setidaknya lebih dari titik perimeter Anda) untuk kueri. OpenDNS adalah poin yang bagus.
nik

@nik: satu-satunya kasus di mana IP router perbatasan Anda bukan IP eksternal adalah ketika Anda berada di belakang beberapa lapisan NAT ... dalam hal ini, solusi yang tepat adalah beralih ke layanan yang tidak rusak otak. ASAP . juga, masalah dengan mengambil URL untuk mengetahui IP Anda adalah bahwa ia hanya memberi tahu Anda IP host yang benar-benar mengambilnya - yang mungkin merupakan proxy yang menghapus Via header.
cas
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.