DNSUP - designed and created from the mind of K5HUM Copyright 2008 - All Rights Reserved G. Mike Raymond 04/21/07 LATEST RELEASE INFO: 1.2 (see EOF for Version History) INSTALLATION ------------------------------------------------- There is none. Simply unzip the archive and place DNSUP.EXE in the same folder where PopNote.exe is located. Or, if you are running DNSUP as a stand-alone utility, place it wherever you wish and create a shortcut to it. To un-install just delete the program. HOW TO TEST WITHOUT ABUSE ------------------------------------------------- (see EOF for details) BACKGROUND SYNOPSIS ------------------------------------------------- Many potential and current PopNote users are frustrated with the nuisance of having a dynamic or changing IP addresses. Your ISP can change your IP in mid stream (vi an IP lease expiration) or at their whim; or more likely when you disconnect and reconnect your dial up service or power down your cable/dsl modem and router. This presents a problem for Peer to Peer communication tools like PopNote that require at least one side to always know the IP address of the other in order to successfully deliver a message. Of course the alternative is to use a 3rd party service like Yahoo, CQPhone or Skype that do the connecting for you but with the security disadvantage that your private communications pass through their systems. One way to overcome these limitations is to subscribe to one of the several FREE sub domain services such as www.dyndns.org or www.no-ip.com which then facilitate peer to peer discrete communications. Once you apply for and receive a free sub domain address such as mine - k5hum.zapto.org - then this verbose address can be used to replace the IP as a viable address in most any internet communications client. However, there is a bit more to it. Once you have the free sub domain address it becomes YOUR responsibility to keep their DNS servers updated to your current IP address and have this information transmitted to the providers DNS servers. For those not familiar with how DNS (Domain Name Servers) work, when you type any verbose address (i.e. CNN.COM) into a client such as a Browser, the very first thing that happens is a request goes out to your ISPs DNS servers to see what IP is currently paired with that verbose address. Then the DNS server sends that IP back to your Browser (in this case) which in turns uses that true network address (a DOT QUAD) to reach your destination. The question then becomes how does the DNS servers know the current IP that should be indexed with a domain or sub domain (verbose) address. Enter DNS ticklers or up-daters! There are many such utilities to choose from, some shareware, some commercial and now my own creation, DNSUP.EXE which is donationware. Donationware is essentially freeware but with an option to contribute a token amount of money of your choosing, if you so desire. Before I digress farther let me explain how these utilities work. Ticklers are little program that you run anytime your connected to the internet. Every 10 minutes it checks your WAN IP to see if it changed and if it did, it communicates that IP change to the DNS service involved. Its just that simple. DNSUP is designed to work with either of two of the most popular free sub domain providers, www.dyndns.org and www.no-ip.com. At the moment, DNSUP will only update one hostname per provider. However, it can independently update two different host names, one for each service. When DNSUP runs, it will do several things. First it will create an ascii text file named DNS_UP_P.cfg if it does not already exist. This is where DNSUP will save your last WAN IP address and your preferential default service mode (DYNDNS or NOPIP). Caution, DO NOT ATTEMPT to manually EDIT this file unless you are extremely proficient. Next DNSUP will trigger your firewall by attempting to get your WAN IP from the free checkip.dyndns.org server. Tell your firewall to Remember and Approve this. DNSUP will start up in DYNDNS mode by default, however this is easily changed later. Now enter your sub domain account information (see CONFIGURING DNSUP below) then close the program so the data is saved. Rerun the program. You are now ready to go. Success will be indicated by the last line of the DNS server saying: For DYNDNS: your ip:good For NOIP : your host (sub domain name):0 Above this last line, you might find it interesting to see the entire raw response from the service. CAVEAT: Do NOT allow DNSUP to "Run" in automated mode until you know your data is correct and accepted by the service. CONFIGURING DNSUP ------------------------------------------------- To setup DNSUP you will need several pieces of information acquired from the service where you obtained your free (or paid) account. Before you begin you must check ONE of the two DNS servers (DYNDNS or NoIP), then add the appropriate information below. Closing DNSUP will automatically save the entered information to the proper CFG (configuration file). Line one: Your chosen sub domain hostname (like k5hum@zapto.org) that you setup on the appropriate system. Line two: Your user name on the server. Line three: Your password on the server. Line four: The verbose server name of your DNS server provider: ("members.dyndns.org" OR "dynupdate.no-ip.com") Line five: Yout current IP address (automatically determined by DNSUP or can be manually entered). CONFIGURATION FILES ------------------------------------------------- DNDUP dynamically saves its configuration data in several ordinary ascii or text files. These are: DNS_UP_D1.CFG (for DYNDNS) DNS_UP_D2.CFG (for NOIP) DNS_UP_P.CFG (current IP and default server) These files are read when DNSUP is executed (started) and when DNSUP is closed or shut down. RUNNING DNSUP ------------------------------------------------- There are 5 buttons: RUN : Starts checking your IP every 10 minutes for changes FORCE : Force an IP update (*CAUTION) GETIP : Get your current WAN IP CLEAR : Clears the top cyan dialog window EXIT : Close the program *abuse will cause you to lose your account. Abuse is considered updates that occur more often than once every 10 minutes! NOTE: DNSUP only communicates with the DNS provider servers IF your IP changes. Otherwise, it is only checking your WAN IP every ten minutes. When DNSUP is running, all reply dialog sent by the servers is displayed in the upper cyan text window. For dyndns, a legitimate update is indicated by the server replying with your IP address and the text: good : update successful nochg : IP is current - possible abuse For more server response information, visit: http://www.dyndns.com/developers/specs/return.html For NOIP, a good update is indicated by your host name followed by a number. Here are the common ones. 0 : IP is current, no update needed 1 : update successful 5 : blocked - abuse - too many updates 7 : invalid IP or blacklisted address To see them all, visit: http://www.no-ip.com/integrate/response/ HOW TO TEST WITHOUT ABUSE ------------------------------------------------- Use the following data: Line one, host name : test.homeip.net Line two, user : test Line three, password : test Line four, server : members.dyndns.org Now you can click the Force button once or twice to test the DNSUP updater. NOTE: There is a hidden debug feature to assist in serious diagnostic situations. Contact me for help and details. K5HUM@ARRL.NET TECHNICAL DETAILS - HOW DNSUP WORKS ------------------------------------------------- Most all dns providers operate Servers that adhere to the HTTP specifications explained in RFC1945 and RFC2616. These systems allow the receipt of commands (user request) and the return of information, all depending on the proper (precise) formatting of the request. In the case of DNSUP, a GET statement precedes the request. When you click Run, DNSUP will do the following every 10 minutes. First it re-acquires your WAN IP and checks it against your previously saved IP. It finds your WAN IP by contacting a special web server running at the following URL: checkip.dynsns.org If the two IP's are the same, DNSUP does nothing. If the new WAN IP is different from the previously stored IP, DNSUP then sends a correctly formatted GET string (command) to the appropriate provider. The GET string wakes up the server, and tells it the name of your Host (sub domain address), your username and your password. Some servers require the user name and password be BASE64 encoded. DNSUP does this automatically and internally. Finally, DNSUP needs the verbose address of service providing DNS. If you are curious as to what these GET commands look like go here: http://www.dyndns.com/developers/specs/syntax.html OR here: http://www.no-ip.com/integrate/request/ Because DNS servers are very busy (shared) systems, with zillions of potential users, its important that no one abuses the systems. Therefore these servers are set to monitor how often an update is requested by any one user. If this frequency exceeds a norm, you can either be locked out temporarily or banned for abuse. DNSUP limits theoretical updates to no more than one every 10 minutes. In practice, your dynamic IP should never change more than once every hour or after every hang-up and redial on dial-up providers. Even users with static or never changing IP addresses can take advantage of a free DNS sub domain name. What is easier to recall? CNN.COM or 64.236.16.52 ; ARC.TZO.COM or 68.114.113.162 ? VERSION HISTORY ------------------------------------------------- 4-20-07 DNSUP v1.1 First release 4-21-07 DNSUP v1.2 Added minimize to Tool Tray. Fixed bug in dyndns update. Added Tool Tray Icon change (a yellow bulls eye) when utility is minimized and IP changes and is updated. ------------------------------------------------- -[30]- or -[EOF]- or The End :)