After a nice little 3 hr perl binge, I've released arpdetect!
It's a perl daemon that just sits there and looks to see if the network changed; if it has, it performs whatever actions you've defined for that network. This is very useful for laptops that change networks frequently.
For example, when I arrive at home, I want to sync my desktop and laptop mail and src (code) folders. Then, when I arrive at work, I want to sync my mail and src folders there, as well. This is also very good (and abstracted) way of moving new configs in place (ie, your resolv.conf for work network and home network).
This daemon is fairly simple to run; just needs a couple perl modules (XML::Simple, Getopt::Long, Proc::Daemon) and easy to configure (XML file). To execute it, it's as simple as calling arpdetect -c /path/to/arpdetect.xml or using the supplied init.d script.
To detect network changes, it uses the arping program supplied by many distributions; however this means it must be run as root. Also, any programs you execute (your 'actions') will also be run as root, so be sure to 'su' to the user you want them to execute as.
Well, go ahead! Download It!