I had a play with the valve server query protocol a while ago for a bit of fun so I've added a server list to this site. You can view the list here. Thanks to Simon from dmc-central.com for the map images.
As usual for me, it was all coded using C#.NET (and using Microsoft's System.Net namespace). I should make use of asynchronous sockets but as the list is only refreshed once every ten minutes and we have around 20 severs, I have moved that to the bottom of my list ;)