Apakah ada perintah yang bisa saya gunakan untuk bertanya ke server dhcpd alamat mana yang telah ditetapkan?
21
Tidak, Anda hanya bisa mendapatkan sisi server informasi ini dari server DHCP. Informasi ini terkandung dalam file DHCP server. Harap:: /var/lib/dhcpd/dhcpd.leases
jika Anda menggunakan server DHCP ISC.
$ more /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat
lease 192.168.1.100 {
starts 4 2011/09/22 20:27:28;
ends 1 2011/09/26 20:27:28;
tstp 1 2011/09/26 20:27:28;
binding state free;
hardware ethernet 00:1b:77:93:a1:69;
uid "\001\000\033w\223\241i";
}
...
...
/var/lib/dhcp/dhcpd.leases
(yaitu tidakd
pada akhir yang pertamadhcp
...)isc-dhcpd
versi paket4.3.1
memiliki perintah ini untuk mencantumkan sewa:Ini adalah skrip skrip perl sederhana yang juga mendukung rilis DHCP yang lebih lama. Anda dapat melihat salinan dalam kode sumber Debian atau dalam distribusi DHCP resmi (dalam
contrib/
).Outputnya cantik:
Lebih cantik jika Anda mengunduh
oui.txt
file seperti yang disarankan, tetapi hasilnya bisa kacau kecuali Anda menerapkan tambalan berikut:Patch ini diajukan di bagian hulu sebagai ISC-Bugs # 41288 dan menunggu peninjauan.
sumber
perintah egrep dapat digunakan untuk mendapatkan output:
Keluaran:
sumber
Sebagian besar jawaban di atas sebagian. Dan jujur saja tidak ada solusi sederhana. 1) Anda dapat mem-parsing file database dhcpd.leases dan mendapatkan informasi tentang sewa aktif, tetapi Anda tidak akan mendapatkan informasi tentang alamat TETAP (ditugaskan oleh baris seperti:
Dan ini juga tidak benar-benar memberikan informasi kapan terakhir kali sebuah dhcp ack dikirim ke mesin.
2) di sisi lain Anda dapat mengurai file dhcpd.log untuk mencari baris ack (terlihat seperti ini):
Tetapi yang harus Anda lakukan adalah melakukan KEDUA. Pertama-tama parsing file log, dan kemudian perbarui file dengan informasi yang diperoleh dari file dhcpd.leases dengan database untuk informasi yang hilang seperti awal sewa, dll.
Sekarang: Saya telah memainkan sekitar 2 hari kerja penuh sampai saya telah membuat solusi yang membuat tabel HTML dengan SEMUA sewa aktif, baik TETAP dan dinamis. Berikut adalah kode yang dapat Anda tempatkan di folder cgi-bin Anda atau di mana saja.
Harap dicatat, bahwa: 1) skrip di atas memerlukan sedikit modifikasi sebelum berjalan di lingkungan ANDA, Anda harus memodifikasi lokasi file, dan satu regex tergantung pada format file log Anda. Lihat komentar dalam skrip. 2) skrip di atas tidak memeriksa apakah IP tidak diulang dalam tabel ACK, jika 2 mesin yang berbeda mendapatkan alamat yang sama dalam beberapa hari terakhir. Ini adalah desain (apa yang saya pribadi perlukan untuk melihat setiap alamat mac yang ada di jaringan saya selama beberapa hari terakhir) - Anda dapat dengan mudah memodifikasinya, ada bagian yang siap untuk ini dalam kode, cukup tambahkan satu syarat.
Harap Anda menyukainya.
sumber
Format file sewaan telah berubah, atau setidaknya berbeda ketika menggunakan
dhcpcd5
. Untuk melihat sewa yang Anda miliki diwlan0
untuk jaringan WiFiMyNetwork
, Anda harus melihat file ini (atau sesuatu seperti itu):/var/lib/dhcpcd5/dhcpcd-wlan0-MyNetwork.lease
.File itu adalah file biner. (Kenapa? Saya tidak tahu. Mungkin untuk menyimpan beberapa siklus CPU yang berharga dalam menguraikannya? Blech.) Untuk melihatnya, gunakan
dhcpcd --dumplease
, yang mem-parsing biner dari STDIN dan menghasilkan versi yang dapat dibaca manusia:Di sisi lain, jika Anda hanya ingin melihat apa yang ditetapkan untuk sewa saat
wlan0
ini, Anda dapat melakukannya:sumber
Saya sebenarnya menulis sesuatu di bash untuk mencoba mendapatkan ini. Itu menulis setiap alamat IP ke file nama yang sama sehingga jika yang lain muncul lagi, itu akan menimpa file sebelumnya, karenanya tidak akan ada duplikat. Ini juga akan menggunakan oui.txt untuk menemukan pembuat alamat MAC yang dimaksud.
Lihat apakah Anda dapat menggunakannya.
sumber