Perintah apa yang bisa saya jalankan untuk mendapatkan alamat IP router saya saja?
Dengan perintah ini saya seharusnya hanya memiliki IP router saya dan tidak, misalnya, seluruh tabel routing (seperti ketika saya menjalankan route -n
).
sumber
Perintah apa yang bisa saya jalankan untuk mendapatkan alamat IP router saya saja?
Dengan perintah ini saya seharusnya hanya memiliki IP router saya dan tidak, misalnya, seluruh tabel routing (seperti ketika saya menjalankan route -n
).
Satu baris:
nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
nm-tool | grep -i gateway | awk '{print $2}
netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
arp -n | awk '{print $1}'
Catatan: hanya berfungsi jika mesin Anda adalah satu-satunya di jaringanip route show | grep -i 'default via'| awk '{print $3 }'
output: 192.168.0.1
untuk saya
CATATAN :
Untuk 15,04 dan yang lebih baru, tidak ada nm-tool
, jadi gunakan nmcli dev show <IFACE>
. Sebagai contoh,
$ nmcli dev show wlan7 | grep GATEWAY
IP4.GATEWAY: 192.168.0.1
IP6.GATEWAY:
Suntingan dan info tambahan
Seperti yang Anda lihat dari memeriksa perintah, kami mengambil output dari nm-tool
(yang, perhatikan, mengambil informasi dari NetworkManager), menemukan baris yang berisi kata gateway
, mencetak daripada informasi dengan gema (dipisahkan oleh spasi), dan kemudian memotong hanya item kedua dari keseluruhan itu keluaran. Perhatikan, bahwa jika Anda memiliki dua koneksi atau lebih di sana, Anda mungkin perlu menghapus xargs echo | cut -d' ' -f2
bagian atas , dan menggantinya dengan awk '{print $2}'
; dengan kata lain seluruh baris akan terlihat seperti ini nm-tool | grep -i gateway | awk '{print $2}'
. Atau Anda bisa menggunakan nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
seperti yang diusulkan oleh Avinash Raj di komentar. Seperti yang Anda lihat tidak ada yang istimewa yang dilakukan di sini, dan seluruh cobaan di sini hanyalah latihan dalam menggunakan alat pengeditan keluaran seperti cut, awk, dan grep.
Metode lain untuk mendapatkan informasi gateway adalah melalui nmcli dev list
(ya, masih mengandalkan network manager) perintah. nmcli
adalah versi baris perintah dari manajer jaringan. Anda bisa berlari nmcli dev list | grep -i routers
atau berlari nmcli dev list | grep -i 'gw ='
. Sekali lagi, Anda dapat berolahraga dalam memotong semua info lain kecuali alamat ip yang diinginkan, jika Anda mau.
Karena dalam pertanyaan awal satu-satunya spesifikasi adalah untuk mencetak gateway default saja, saya mengandalkan output dari nm-tool di sini. NetworkManager hadir dengan Ubuntu secara default, ini adalah cara standar untuk mengelola koneksi jaringan Ubuntu. Jika Anda menggunakan sesuatu yang lain, seperti wicd atau terhubung melalui wpa_cli, nm-tool tidak akan memberi Anda jawaban. Dalam hal demikian, Anda mungkin menemukan jawaban orang lain di bawah ini lebih bermanfaat.
Opsi yang lebih distro-netral, dan config-neutral adalah menggunakan netstat -n
, yang menggunakan tabel routing kernel, mirip dengan route -n
. Keluarannya di bawah, tidak ada yang mengejutkan.
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
Dan inilah cara untuk memotong informasi yang Anda inginkan: netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
Satu lagi, netral juga: arp -n | awk '{print $1}'
nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
eth0
danwlan0
, keduanya terhubung secara aktif tetapi dengan gateway yang hanya dikonfigurasikanwlan0
,nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
output saja0.0.0.0
.nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
menghasilkan dua baris:0.0.0.0
diikuti oleh192.168.1.1
. (Caraip route ...
danroute -n ...
menghasilkan adil192.168.1.1
, yang saya anggap hasil yang paling diinginkan.)network-manager
misalnya olehifupdown
atauifconfig
..dalam kasus-kasusnm-tool
tersebut tidak akan menghasilkan output yang diinginkan..singkatnya jawaban ini hanya bergantung pada jaringan yang dikelola olehnetwork-manager
..Anda dapat menemukannya dengan banyak cara
Pertanyaan yang lebih baik, apa atau bagaimana Anda ingin membentuk output?
Dari komentar - (terima kasih Avinash Raj 0
sumber
uniq
hanyatracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'
akan menjadi 5in.tracepath
mendukung-m
pada beberapa versi Ubuntu tetapi tidak pada yang lain .Seperti yang biasanya Anda gunakan
route -n
, Anda dapat mencobased
solusi ini ditambah denganroute -n
:Ini tesnya:
Cara lain adalah dengan menggunakan
grep
:Seperti yang ditunjukkan oleh @AvinashRaj ini hanya dapat dilakukan dengan menggunakan
grep
(tidak perlu memeras spasi menggunakantr
):sumber
tr
, grep sendiri akan melakukan pekerjaanroute -n | grep -Po "0\.0\.0\.0 \s*\K\S+(?=\s*0\.0\.0\.0)"
Saya sering menggunakan ini:
sumber
192.168.0.1
?Jika Anda memiliki akses ke peramban web pada sistem, Anda dapat mengunjungi http://whatsmyrouterip.com/ dan itu seharusnya dapat menemukan ip Anda tanpa perintah apa pun.
Kalau tidak, cukup membuka terminal dan melakukan
ip route | grep default
harus cukup. Mungkin memberi lebih dari satu tergantung pada antarmuka jaringan Anda tho.sumber
Saya menggunakan ini cukup sering dan mudah diingat:
sumber
190.200.200.107 172.21.0.1 172.17.0.1 172.19.0.1 172.18.0.1
jadi untuk mendapatkan hanya masalah IP
190.200.200.107
sumber