This is a long-overdue follow-up to my previous article about extracting useful information from DHCP server logs. Once again, nothing fancy – just some simple scripting to help you get some idea of what’s going on in your DHCP world.
I made a couple of small but hopefully useful changes. First, instead of using wget to download the IEEE OUI list, which takes forever, I use this get-oui Perl script. By default, the script below will look for /root/ieee-oui.txt, but you can change that.
The second change has to do with using arp-scan instead of ping to determine if the device is online. This works better when scanning from the local subnet, as many devices that use DHCP would not respond to ping.
The script is below, and you can also download it from my GitHub repo.
#!/bin/bash
grep dhcpd /var/log/messages | grep -oE '([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}' | sort -u | while read line
do
iplist="$(grep ".*dhcpd.*${line}" /var/log/messages | grep -oE "([0-9]{1,3}\.){3}([0-9]{1,3})" | sort -u | xargs)"
if [ -z "${iplist}" ]
then
iplist=none
fi
devname="$(grep ".*dhcpd.*${line}" /var/log/messages | grep -oP "(?<=\()[[:alnum:]]{1,}(?=\))" | sort -u | xargs)"
if [ -z "${devname}" ]
then
devname=none
fi
status=OFF
if [ $(for ipa in ${iplist}; do arp-scan -xq "${ipa}" 2>/dev/null | grep -c ${ipa}; done | wc -l) -gt 0 ]
then
status=ON
fi
sed 's/://g' <<<${line} | tr '[:lower:]' '[:upper:]' | cut -c 1-6 | while read mac
do
ouilist="$(grep ^${mac} /root/ieee-oui.txt | awk '{ $1=""; sub(/^[\t ]+/, ""); print }' | xargs)"
if [ -z "${ouilist}" ]
then
ouilist=none
fi
echo -e "${line}^${status}^${iplist}^${devname}^${ouilist}"
done
done | (echo "MAC^ONLINE^IP ADDRESS^HOSTNAME^MANUFACTURER" && cat) | column -s^ -t
And here’s some sample output:
MAC ONLINE IP ADDRESS HOSTNAME MANUFACTURER 00:10:75:37:a8:fd ON 192.168.121.169 none Segate Technology LLC 00:11:32:2e:1a:07 ON 192.168.121.144 192.168.121.167 nas05 Synology Incorporated 24:f5:a2:46:91:6f ON 192.168.121.150 192.168.121.167 wemo Belkin International Inc. 24:f5:a2:46:93:4b ON 192.168.0.60 192.168.0.80 192.168.121.158 192.168.121.167 wemo Belkin International Inc. 34:03:de:4c:63:83 ON 192.168.121.142 192.168.121.167 none Texas Instruments

Experienced Unix/Linux System Administrator with 20-year background in Systems Analysis, Problem Resolution and Engineering Application Support in a large distributed Unix and Windows server environment. Strong problem determination skills. Good knowledge of networking, remote diagnostic techniques, firewalls and network security. Extensive experience with engineering application and database servers, high-availability systems, high-performance computing clusters, and process automation.





















