The 'Extensible Provisioning Protocol'. No, I'd never heard of it either, but it's the subject of the IETF RFC 4930 and a few others as well. Basically it's a protocol used by internet domain registries to receive commands from and send replies to their registrars concerning the domains under their control.
Say I was interested in buying one or more domains that began with 'peredur'. I could express this interest to a domain name registrar who would, on my behalf send a 'check' command to one or more registries to see what domains beginning with 'peredur' were available. To do that, they would send a <check> query to various registries and come back with a list of what was available, if anything. Let's say that peredur.com and peredur.org.eu were available and that I wanted to buy them.
The next step would be for me to enter into an agreement with the registrar to buy those domains and then the registrar would send the appropriate EPP <create> commands to the appropriate registries.
Now, my son happens to be a domain name registrar, amongst his other talents, and he wanted to make an EPP client (the bit that talks to the registry, by issuing the commands) available to potential domain holders, and since his site is powered by the DotNetNuke content management system, he hunted around to see what was available in C# to do this job. It turns out that there's very little, if anything, available; so he employed an outside developer to produce something for him.
Unfortunately, they soon hit problems, so he turned to me to see what I could do.
I haven't programmed at this low level for years, and never in C#; but as a matter of fact it turns out not to be all that hard, once you've got your mind around the RFC. So we currently have a class library and a console-based user interface that can connect to an EPP server, parse the returned <greeting> message, login, send a <check> command and receive the response from the server and, ultimately, log out. It's not very pretty as yet, but it does work.
The next step is to pretty it up a bit and use it as a demonstration prototype to see if anyone else is interested in it - and to use it for Matthew's purposes as well, wrapped up in a DotNetNuke module.
Looking around the Web, we see lots of interest in a piece of software like this, and we're surprised how little there is available. Maybe we'll have something sellable here. Who knows?




25/06/08 @ 09:54