В моей локальной сети работает несколько DHCP-серверов, и все они находятся в одном диапазоне.
Теперь я использую машину с динамическим IP-адресом от DHCP-сервера. Я должен знать, с какого сервера он приходит.
Как это сделать?!
Чтобы узнать DHCP-сервер, который дает вам IP-адрес, просто нажмите Ctrl kbd> + Alt kbd> + T kbd> на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (команды) ниже:
cat /var/lib/dhcp3/dhclient.leases
Или вы можете просто использовать команду grep для получения адреса DHCP-сервера.
grep dhcp-server-identifier /var/lib/dhcp3/dhclient.leases
ИЛИ
grep dhcp-server-identifier /var/lib/dhcp/dhclient.leases
Для Ubuntu 14.04, 16.04 и 17.10 вы можете использовать:
dhclient -d -nw eth0
Пример вывода:
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:0c:29:49:3e:67
Sending on LPF/eth0/00:0c:29:49:3e:67
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x4f723f9)
DHCPREQUEST of 192.168.138.136 on eth0 to 255.255.255.255 port 67 (xid=0x4f723f9)
DHCPOFFER of 192.168.138.136 from 192.168.138.254
DHCPACK of 192.168.138.136 from 192.168.138.254
RTNETLINK answers: File exists
bound to 192.168.138.136 -- renewal in 892 seconds.
В Ubuntu 14.04 /var/lib/dhcp/dhclient.leases
пусто. Фактический файл аренды можно найти в командной строке dhclient
через ps
. Ищите опцию -lf
. Эта команда должна работать в установках Ubuntu 14.04 (по-прежнему действует с 17.10) :
cat $(ps aux | grep -o '[/]var/lib/NetworkManager/\S*.lease') | grep dhcp-server-identifier
В Ubuntu 16.04 вы можете попробовать
journalctl | grep DHCPACK
С nmap ( источник ): sudo nmap --script broadcast-dhcp-discover -e eth0
С dhdump ( источник ): sudo dhcpdump -i eth0
С tcpdump ( источник ): sudo tcpdump -i eth0 -nev udp port 68
Другие
dhcp_probe
(dhcp-probe
пакет)