RDCD v1.1 (c) Copyright 2001 - HaZrD

Use this at own risk - I will NOT be held responsible for ANYTHING that happens WHATSOEVER by using or NOT using this piece of shellscript.

The way this code works :

The code does an HTML dump of the COZA whois page, and does a check for a specific line "Match: One" or "Match: Zero" ... Based on this, we can determine whether or not a domain has been registered or not. If the match is equal to "Zero", we send in a registration form. If the match is equal to "One" we revert back to the loop, wait a while, and try again.

The point behind this code, is to demonstrate the ease of registering a domain (specifically co.za) if someone else has taken it already ... they forget to pay, and we want it - at the time of writing, a co.za domain will last a full 7 months before it gets removed (hmmmm....) and since the deletion run is done on a "erm, do i have time for this NOW, or should i wait another 10 minutes" basis, we don't have a clue when the domain will be available for us .... so .... well .... we use this little VERY untidy scripty ...

The recommended value for 'sleep', is 600 btw, and is default to all the versions that are released. If you lower this, COZA would shit itself. We do NOT want this !! (This would make a very easy-to-use system become one of those eletist systems where everything happens VERY SLOWLY!!!)

Please, do NOT abuse this !

As a side-note, filling the "domains" variable with more domains, also helps with extra automation, but creates extra load on co.za's side ...

I'm reasonably sure that the code doesn't add too much heavy stress on the database machine, but please be carefull !

Overview :

Variables that are used, and their descriptions :
log Simple logfile to keep track (Date, Time, Count, Error Message)
base Where are we running from and where are the .reg files ?
domains A space " " seperated string with domains we want (a .co.za will be appended automatically to the domain, SO DON'T ADD ONE !
cnt A simple counter for statistical purposes
regcount A registration count. If this is equal to 2, we assume that we were successfull, and exit.
snooze The sleep value - erm, don't play with this ! it'll break things !

Files :

If you want to register "uniforum.co.za", you would create a file with the filename of "uniforum.reg" and put in in the $base directory, for example :


This file is a complete CO.ZA registration form, available from :


An application form is included in this package, named : coza_reg.txt

The coza_reg.txt file is a duplicate of uniforum.reg, since they are pretty much the EXACT SAME THING ! I have taken the time to fill the form in the way it SHOULD be filled in. So take note, and try and fill the CO.ZA forms in correctly to avoid problems with domains. It's not difficult people, just READ DAMNIT! Don't use my form ! It won't work !

You're paying for the domain, so don't be shy about having it !

Domain Name Servers (DNS) :

First set up your DNS. You need a MINIMUM of 2 (two) Domain Name Servers. If you have problems setting these up, consult :


NO, I don't give a damn about Windows DNS !!! You're on your own with that !

The exploit :

At the time of writing this code, Uniforum SA had implemented a whois restriction, in that you could do 30 whois query's before being shut out of the system (ie. You couldn't do more than 30 whois queries in under an hour).

The good thing is, that they still returned the "Match: One" or "Match: Zero" which we are after. This allowed us to STILL check to see if the domain has been taken (ie. they havn't deleted it yet), and give us a sporting chance.

Bugs :

Only future related. If Uniforum stopped sending us the "Match" strings, we would have to find another way of registering badly wanted domains. It would be a damn shame too ! This is the most NON-intrusive code I could make work. Uniforum would shoot themselves in the foot if they made it more "difficult" for us to grab up domains which other people obviously don't want !!!!!

Reasoning :

OK, this is where the politics gets involved. I do not see why a company would make it so damn difficult for a user/company to register domains that other people don't want. Don't get me wrong, Uniforum SA has made every attempt to make registration of domains as easy as "read this form, think!, fill it in, and off you go, under 1 minute - you have your domain!" I cannot find any other registrar that has ever been able to even come close to what they've pulled off - For this, I congratulate them WHOLEHEARTEDLY !

BUT!!! If someone registers a domain, and doesn't pay for it, why the hell can't I get that domain ??? I am after all willing to pay for it !

I have NO time or space for Domain Sqautters who register domains, and just sit on them, waiting for some company who really WANTS to use it, to pay a fortune for it ! That's just plain stupid ! THINK PEOPLE !

Downloads :

rdcd-1.1.tgz is available currently, and forms the first public release of the code.

The file currently contains :

COPYING The GPL (License) Read this !
README RTFM !!! It contains all you need to know :)
coza_reg.txt The original CO.ZA registration form
rdcd The shell code
uniforum.reg A SAMPLE registration form

MD5 Checksum : ae0ab26debc77562b45e0508693430d7 rdcd-1.1.tar.gz

Credits :

Special thanks to Uniforum SA for making this code so easy :-) as well as my current employer who taught me tricky shell code *grin*

Greetz :

ETRiGEN, Kilo, TKC (where ARE you these days?), PersonXX, LXR, Fister, Milamber, Low-Key and all the other nice peoples who have ever helped, irretated or otherwise made my life interesting !

Contacts :


Space/time/effort and hosting supplied graciously by :

SourceForge Logo

This site was entirely designed in 'vi' hence the functional, but lack of "pretty"