As I’m sure you know, every computer connected to the Internet has an IP address, such as 69.73.181.157 (this site’s IP address). As I’m sure you also know, every computer on the Internet communicates with every other computer via IP address. Most web sites have static (unchanging) IP addresses, while most home users have dynamic addresses (addresses that change every day, week or month, depending on how often your ISP decides to change them). If you still use dial-up, for example, you’ll generally get a different IP address every time you connect to the Internet. Some DSL providers change their customer’s IP address several times a day. Many cable providers don’t change their customer’s IP addresses for months at a time.
So why do web sites have static IP addresses, and why do home users have dynamic ones? Well, web sites need static IP addresses so that people can connect to them. If a website’s IP address changed every day, the Internet’s DNS servers – the computers that convert “yahoo.com” into 216.109.112.135 when you type that address into your address bar – simply couldn’t keep up. The web would be in a constant state of flux, and you wouldn’t be able to connect to your favorite web sites on a regular basis. For an ISP, though, keeping track of which home user has which IP address is a monumental pain. It’s much easier for them to run DHCP servers – computers whose sole job is to assign IP addresses when the home user’s cable\DSL modem asks for one. So rather than have a huge database of account numbers and IP addresses, your ISP simply sets up a server that says “here are our available IP addresses. Whenever a customer requests an IP address, give him one of these”.
It might be helpful to think of IP addresses like phone numbers. A Chinese take-out restaurant needs a static phone number so that people can call in and order food. After all, if their phone number changed every week it’d be hard to order from them, no? But in this example, the restaurant’s customers don’t need static phone numbers to call in an order. They can phone their orders in from their home phone, their work phone, their cell phones, or even a pay phone.
The next question you might ask is… “why does any of this matter?” Well, if all you ever do is surf the Internet and check your email, then none of this does matter to you. If, on the other hand, you want people to connect to your home computer – that is, if you want to run a web, email or gaming server, or want to connect to your home computer via Remote Desktop when you’re on the road – then dynamic IP addresses are huge problem. Normally you’d just write down your IP address and either email it to your friends (if you want to run a server) or keep it on your person (if you want to access your home computer remotely). But what if your IP address changes? You’d have to email your friends all over again, and you wouldn’t be able to connect remotely to know what your new IP address is. In other words, you’d be like a Chinese restaurant with a phone number that changes all the time. No one would be able to connect to your web\email\gaming server (and you couldn’t connect remotely) because your “phone number” changes several times a day.
Thankfully, there are several free services that provide workarounds for this. They’re called “Dynamic DNS providers”. All you do is sign up for an account on their website; DynDNS and No-IP are two of the most popular services. You then choose one of the free domains they offer (such as “bounceme.net”) and create a “hostname” for your computer (such as “mikescomputer”). You then download a little program from the company’s site; this app checks your IP address and updates the company’s DNS servers as it changes. You can then access your site\computer remotely simply by entering “mikescomputer.bounceme.net” into your web browser, the MX record for your domain, or into the Remote Desktop Connection program. It’s pretty slick, and it works really well.
Note also that many home and small business (SOHO) routers have Dynamic DNS applications built right in. In this case, you’d only need to sign up for the service, choose a domain and hostname, and then enter this information into the appropriate page of your router’s built-in configuration page. The router will automatically detect changes to your external IP address and upload them to DynDNS (or whichever provider your router supports).