mapSwitches is a small (550 line) Perl script that has a simple task; track MAC addresses on one or more switches using snmp. This allows you to see what devices are on your switches and which ports they connect to. Additionally, mapSwitches will query your dhcp server (again via snmp) to get the IP addresses, then use reverse DNS to look up the names. The utility is designed to run as a cron job.
Two additional utilities are included. The persistent data is stored in a YAML file, which mapSwitchesCSV.pl converts to a tab delimited text file. csv2html converts a tab delimited file to a static web page.
mapSwitches can be downloaded via subversion at http://svn.dailydata.net/svn/sysadmin_scripts/trunk/mapSwitchPorts