Apakah ada cara bagi saya untuk mendapatkan alamat IP publik (WAN) di baris perintah? Saya berada di belakang router (jaringan LAN), dengan alamat IP dinamis yang ditetapkan oleh ISP saya.
Saya telah melihat solusi menggunakan layanan web eksternal (seperti ifconfig.me
), tetapi saya ingin tahu apakah saya bisa melakukannya tanpa layanan eksternal.
command-line
internet
ip
dynamic-ip
pengguna61954
sumber
sumber
Jawaban:
Dengan asumsi sistem Anda memiliki 2 perangkat ethernet,
eth0
daneth1
daneth0
terhubung ke LAN Anda, katakan IP 192.168.1.X daneth1
perangkat Anda terhubung ke ISP (WAN) Anda, Anda akan ingin menggunakanifconfig
perintah berikut untuk mendapatkan IP Anda untuk sisi WAN.CATATAN: 2 cara pertama mengasumsikan bahwa Anda menjalankannya terhadap komputer yang memiliki 2 perangkat ethernet dan salah satunya terhubung ke ISP Anda (modem kabel dan / atau modem DSL). Dalam skenario ini, perangkat ethernet (eth1) akan dikonfigurasikan dengan alamat IP Anda di internet (WAN IP).
Cara 1
Anda juga dapat menggunakan
ip
perintah.2nd way
Jika Anda perlu mencari tahu ini dari sistem yang hanya duduk di LAN, Anda dapat mengatur kunci ssh-less ssh dan menambahkannya ke akun di mesin LAN Anda sehingga dapat mengakses sistem dari jarak jauh dengan akses WAN seperti itu.
Cara ke-3
Jika Anda tidak dapat ssh ke dalam kotak yang memiliki akses WAN dan Anda menggunakan router / switch rumah seperti kotak Linksys atau Netgear. Anda mungkin bisa mendapatkan IP dari perangkat itu melalui halaman status HTTP. Saya telah melakukan ini di masa lalu juga, sesuatu yang mirip dengan apa yang dijelaskan dalam posting forum whatismyip.com ini .
CATATAN: Pendekatan ini sangat tergantung pada router / switch yang Anda miliki, apakah itu merek Linksys, Netgear, dll. Masing-masing akan memiliki halaman unik mereka sendiri dengan IP WAN di atasnya.
Cara 4
Mengirim kueri ke situs internet eksternal yang akan melaporkan kembali alamat IP WAN Anda.
CATATAN: Saya sadar bahwa pertanyaan awal menyebutkan bahwa mereka mencari alternatif untuk pendekatan ini, tetapi saya menaruhnya di sini sehingga jawaban ini mencakup semua pangkalan.
Info tambahan tersedia di sini: HOWTO: Periksa alamat IP eksternal Anda dari baris perintah
sumber
eth*
perangkat yang akan memiliki IP WAN. Kecuali router-nya mendukung ssh, ia memiliki akses, dan ifconfig, ini tidak akan berfungsi. Tidak downvoting, tetapi supaya siapa pun yang mencoba melakukan ini sadar.Jika sistem Anda memiliki ikal yang diinstal (sebagian besar dilakukan), Anda dapat menggunakan
sumber
Ketika Anda berada di belakang Router NAT dengan UPNP, Anda dapat menggunakan miniupnpc untuk mendeteksi dengan menggunakan alamat ip:
Anda dapat menggunakannya dalam skrip misalnya untuk cron seperti:
sumber
Kemungkinan besar, router harus menyediakan cara untuk mendapatkan IP eksternal jika tidak ada layanan eksternal yang dapat atau dapat digunakan (karena beberapa jawaban lain sudah ditunjukkan). Untuk layanan eksternal, dalam sebagian besar jawaban lain, layanan web digunakan. Jawaban ini di Unix SE menyarankan untuk menggunakan DNS sebagai gantinya.
Misalnya, menggunakan
dig
dengan OpenDNS sebagai penyelesai:sumber
curl ident.me
karena kami mengandalkan layanan tertentu (dalam bahasamyip.opendns,com
khusus-server DNS)Ambil info dari router Anda melalui ssh atau curl.
Saya menggunakan curl untuk meminta dyndns untuk ip publik saya tetapi perintah seperti itu tampaknya tidak berlaku untuk Anda, bukan?
curl http://checkip.dyndns.org 2> /dev/null| perl -pe 's,.*Address: (\d+\.\d+\.\d+\.\d+).*,$1,'
sumber
Sayangnya tidak ada cara untuk mendeteksi mekanisme seperti NAT yang tidak melibatkan menghubungi layanan jarak jauh. NAT pada dasarnya benar-benar transparan kepada pengguna, selain layanan yang rusak, dan tidak ada protokol standar untuk penemuan NAT.
Tetapi sejauh menyangkut layanan eksternal, saya harus menyarankan yang cepat dan sederhana yang saya tulis, ident.me, yang dapat Anda gunakan untuk IPv4 dan IPv6; untuk bentuk paling sederhana yang dapat Anda gunakan
curl ident.me
dan API lengkapnya didokumentasikan di http://api.ident.me/sumber
Jika router Anda mendukung NAT PMP (Port Mapping Protocol), Anda mungkin dapat mengambil IP publik Anda menggunakan natpmp.
Ada antarmuka baris perintah ke perpustakaan natpmp linux yang disebut natpmpc. Di ubuntu, itu ada dalam paket natpmp-utils . Router saya tampaknya tidak mendukung natpmp, jadi saya tidak yakin utilitas natpmpc akan mengembalikan IP publik Anda.
sumber
Perintah linux yang Anda cari
ifconfig
berasumsi Anda terhubung langsung ke internet.Jika tidak dan mengakses melalui proxy atau perutean khusus, cara termudah (seperti yang ditunjukkan orang lain) adalah dengan login / mengakses host lain dan memeriksanya dari sana.
Selain itu, Anda mungkin ingin mendiskusikan pertanyaan ini dengan administrator sistem ramah lingkungan Anda.
sumber
ifconfig
sudah ditinggalkan.ifconfig
tanggal rilis terbaru. Sekarang lihatìproute2
rilis terbaru. Adapun sumbernya, lihat lartc.org/howto/lartc.iproute2.html#LARTC.IPROUTE2.WHYsed itu jika Anda perlu
sumber
curl icanhazip.com