I am working on a windows fork of this. There really wasn't much to modify to get it to work under windows. Basically just remove the daemon imports and functionality (and then schedule it with a windows scheduled task).
I am not a python programmer but am able to follow the code for the most part. However, I noticed that it always thinks the address has changed and then tries to update dreamhost on every execution. I cannot see anywhere were it actually stores (and then recalls) the previous address that was pulled. Everytime it runs it thinks the previous address was 127.0.0.1.