Есть ли команда, которую я могу использовать, чтобы спросить сервер dhcpd, какие адреса были назначены?
21
Нет, эту информацию можно получить только с DHCP-сервера. Эта информация содержится в файле .lease сервера DHCP:, /var/lib/dhcpd/dhcpd.leases
если вы используете 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
(т.е. нетd
в конце первогоdhcp
...)isc-dhcpd
Пакетная версия4.3.1
имеет следующую команду для получения списка аренды:Это простой скрипт сценария Perl, который также поддерживает старые версии DHCP. Вы можете увидеть копию в исходном коде Debian или в официальном дистрибутиве DHCP (in
contrib/
).Вывод довольно:
Будет лучше, если вы загрузите
oui.txt
файл, как предложено, но тогда результат может быть искажен, если вы не примените следующий патч:Этот патч был представлен в исходном виде как ISC-Bugs # 41288 и ожидает рассмотрения.
источник
Команда egrep может быть использована для получения вывода:
Выход:
источник
Большинство ответов выше являются частичными. И если честно, простого решения не существует. 1) Вы можете проанализировать файл базы данных dhcpd.leases и получить информацию об активных арендных договорах, но вы не получите информацию о каких-либо ИСПРАВЛЕННЫХ адресах (назначенных такой строкой, как:
И это также не дает никакой информации о том, когда в последний раз dhcp ack был отправлен на компьютер.
2) с другой стороны, вы можете проанализировать файл dhcpd.log для поиска ack-строк (они выглядят так):
Но то, что вы действительно должны сделать, это сделать ОБА. Сначала проанализируйте файл журнала, а затем обновите файл информацией, полученной из файла dhcpd.leases, с базой данных для отсутствующей информации, такой как начало аренды и т. Д.
Теперь: я проработал около 2 полных рабочих дней, пока не создал решение, которое создает таблицу HTML со ВСЕМИ активными договорами аренды, как ФИКСИРОВАННЫМИ, так и динамическими. Вот код, который вы можете поместить в папку cgi-bin или где-либо еще.
Обратите внимание, что: 1) приведенный выше сценарий требует небольшой модификации перед запуском в ВАШЕЙ среде, вам необходимо изменить расположение файлов и одно регулярное выражение в зависимости от формата вашего файла журнала. Смотрите комментарий в скрипте. 2) вышеприведенный скрипт не проверяет, не повторяется ли IP в таблице ACK, если 2 разных компьютера получили один и тот же адрес в течение последних дней. Это сделано специально (мне лично нужно было видеть каждый mac-адрес, который присутствовал в моей сети в последние дни) - вы можете легко его изменить, в коде есть готовый раздел, просто добавьте одно условие.
Надеюсь, вам понравится.
источник
Формат файлов аренды изменился, или, по крайней мере, он отличается при использовании
dhcpcd5
. Для просмотра аренды вы имеете наwlan0
к сети Wi - FiMyNetwork
, вы должны смотреть на этот файл (или что - то вроде этого):/var/lib/dhcpcd5/dhcpcd-wlan0-MyNetwork.lease
.Этот файл является двоичным файлом (Почему? Я не знаю. Может быть, чтобы сэкономить некоторые драгоценные циклы ЦП при его разборе? Blech.) Чтобы просмотреть его, используйте
dhcpcd --dumplease
, который анализирует двоичный файл из STDIN и выводит версию, читаемую человеком:С другой стороны, если вы просто хотите посмотреть, на что назначена текущая аренда
wlan0
, вы можете просто сделать:источник
Я на самом деле написал что-то в bash, чтобы попытаться получить это. Каждый IP-адрес записывается в один и тот же файл имен, поэтому, если снова появится другой, он перезапишет предыдущий файл, поэтому дубликатов не будет. Он также будет использовать oui.txt, чтобы найти производителя MAC-адреса, о котором идет речь.
Посмотри, сможешь ли ты использовать это.
источник