reverse MD5?
Hell No.
MD5 is not encryption, all MD5 does is create 128 bits that can be used to almost positively identify the data in the future.
But, does not actually contain that data, it is just a bit-size description, so we know that the data has not changed at all since we last saw it.
You should have used mcrypt, since that library is free and available for most languages. And of course, you can encrypt and decrypt freely as long as your iv_key is the same.
The only real way to do it in any reasonable amount of time is to have all the possible server IPs for authentication stored in your database, then you could cycle through a finite amount of possibilities. Though that may seem ugly...
read what your other option is.
The only other way to do what you want is to guess at what that IP may be... so for each IP, you generate an MD5 checksum and if it precisely matches the MD5 string provided, then you know you have found the servers IP.
But, considering you have up to 12 unknown digits that range from 0-9, that can be in groups of 2-3 at a time, and in multiple combinations...
Ahh hell.. who am I fooling I can't even begin to calculate the billions of calculations you'd need to cycle through to get that one... let's just say it would a tremendous amount of time to guess at the correct IPs MD5 checksum.
Either way... Good Luck!