Existe um utilitário chamado dhcpdump
, ele escuta em uma interface de rede e copia o tráfego dhcp, ele também pode filtrar por endereço de hardware (MAC).
Você poderia usar isso com uma combinação de grep para acionar sua ação.
No meu laptop eu usei para monitorar via ethernet a solicitação do meu celular (via wifi) para um endereço IP.
dhcpdump -i eth0 -h cc:05:1b:1d:8f:6d |tee dhcp3.log
cat dhcp3.log
TIME: 2015-10-17 14:21:25.079
IP: 0.0.0.0 (cc:5:1b:1d:8f:6d) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: 00000000
SECS: 65535
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: cc:05:1b:1d:8f:6d:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)
OPTION: 50 ( 4) Request IP address 192.168.1.75
OPTION: 54 ( 4) Server identifier 192.168.1.254
OPTION: 57 ( 2) Maximum DHCP message size 1500
OPTION: 60 ( 13) Vendor class identifier dhcpcd 4.0.15
OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask)
121 (Classless Static Route)
33 (Static route)
3 (Routers)
6 (DNS server)
28 (Broadcast address)
51 (IP address leasetime)
58 (T1)
59 (T2)
---------------------------------------------------------------------------