This week Jerod Santo released a nifty little app he had written for the Mac called Detours. It's pretty cool, it's a nice GUI where you can add routing information. So, you can make the DNS resolver think google.com is located at 127.0.0.1. Stuff like that.
I use Linux though, and I wanted some of that goodness. Unfortunately, Jerod told me that Detours uses some OS X specific API calls. So, cool for Mac folks but lame for me.
That evening I set off to write a portable version of Detours by using the hosts file (/etc/hosts) on Linux. Naturally since I'm groking a text format it's uglier, and it requires a daemon/client set up since the hosts file is write-locked for normal users.
But, I got one working that night and I've built it out since then. So I present to the Linux users of the world, Detours Clone. Lame name I know, if you have a suggestion for a better one let me know.
Anyway, I have a nice Python daemon and three Python clients (Qt4, GTK+ and a web server!). They speak JSON over TCP sockets (bound to 127.0.0.1 of course) and work well so far. I even wrote a few tests and a distutils installer.
So go check it out!
The Qt4 Client