Well, I'm pretty sure the native system worked because the TGC website can be used to get all the servers, but I might be totally wrong on that. I think the best way would to set up a master server either with a static IP or a DynDNS service, and then have all the servers running send a packet to the master server every ten minutes or so telling the server it is still running, and if not the server gets deleted off the list. You could then have the clients request the server list, and then make a menu that displays all of them along with the info.
The system I'm using in OpenFPS is based on just sending one string for the commands, with "&" to separate each section of the packet. Here's a few examples, Client refresh command to the master server would be "&cr"
The info command from the game server to the master server would be: "&Server Name&MapNameOfPlayers"
That's just a rough system I have in place, not quite the best though, but the quickest I've seen. Also, if you do go with this system, I'd suggest using a different coding language such as python for the master server, that way you could buy a server and not have to worry about directX being installed. Python runs at very low CPU and most servers come with it installed.