Can I fake the DNS ip lookup to test my website?
The situation is this: you have a working web site, and youâre about
to move it or make dramatic changes to it. So you make a copy of the web site
at a different ip address, possibly with a different temporary domain name. You
make all your changes and then want to test it out using the correct
URL â the ârealâ domain name. How can you do that without actually changing the
internetâs DNS entry for your domain?
Itâs not hard at all.
Become a Patron of Ask Leo! and go ad-free!
Letâs look at the example in more detail. Say youâre the proud owner of
http://example.com, and it lives on a server at IP address 1.2.3.4. Youâre about
to make major changes to it, so you create a new domain, http://test.example.com
on a different server with a different IP address â 1.2.3.5.
After you make your changes, you want (or in come cases you may need)
to test the new server at the new address but use the âcorrectâ, real name
of the site: example.com and not test.example.com.
In other words, you would like to change example.com to point to 1.2.3.5 instead of 1.2.3.4.
Ideally, though, you would not want that to be true for everyone. In fact, you
want that to be true only for you. While youâre testing your new site, you want
the world to continue to only see example.com at the old IP address 1.2.3.4.
Enter the âhostsâ file in Windows. This text file contains IP-to-name
mappings that override DNS. In fact, if Windows finds an entry in the DNS file, then
the internet DNS is never even consulted.
The hosts file lives in c:\windows\system32\drivers\etc\hosts (where
âc:\windowsâ is your Windows directory). Itâs just a text file, and each line
that doesnât begin with a â#â character is of the form:
number space name
So for our example, we would edit this hosts file and add the following
line:
1.2.3.5 example.com
Now, on our machine only âexample.comâ will reference the new IP address, 1.2.3.5,
instead of whatever DNS has listed.
There are a couple of caveats:
- Youâll need an entry for every and any domain or subdomain youâre testing. So
for example if you needed to test both âexample.comâ and âwww.example.comâ, you would
create two entries. - You must remember to remove the entries from your hosts file after your
testing is complete. Remember, the hosts file overrides DNS, so if the
real IP address for example.com changes again sometime in the future, this machine
will continue to believe itâs at whatever IP address is listed in hosts.
If this approach sounds vaguely familiar, itâs also a technique used
by viruses and spyware. By placing entries into your hosts file, malware writers can
redirect you to their sites or prevent you from accessing
other sites. And that brings us to a final caveat:
- A properly configured anti-spyware or anti-virus program may prevent
you from making changes to your hosts file. Itâs safe to temporarily override
these programs settings while you perform your test, but be sure to restore their
real-rime protection when youâre done.
Good trick. I supose it will work well if you have a your own server with a static IP address, but probably will be dificult if your domain is hosted in a shared machine. Any idea for this?
Definetly works for static IPs. Donât understand how a machine being shared or not (in any of several definiteions of âsharingâ) makes a difference though.
also useful for looking up the current ip of your domain is this online lookup tool: http://www.dnswatch.info
Quote:
Remember, the hosts file overrides DNS, so if the real IP address for example.com changes again sometime in the future, this machine will continue to believe itâs at whatever IP address is listed in hosts.
EndQuote
This is not true, all over the microsoft website it is said that the DNS is read FIRST and the HOSTS file read SECOND. This is a problem for me because I am trying to give a different IP for a hostname and I am unable to because the hostname is first resolved via DNS so Windows does not bother checking HOSTS.
Excellent article. Iâm glad that I found it. Two thumbs up!
Is there a way to forward the index page to the test site using an html tag?
hi i will to know how i can block a website..its meebo.com.
I canât seem to redirect an IP to an IP in the hosts file. I have a desktop application which references an IP that is no longer valid and I donât have the source code. I want to fake the PC into thinking that the old IP is referring to the new IP.
Say my old IP is 1.2.3.4 and my new IP is 1.2.3.5, I want the host file to say something like this:
1.2.3.5 1.2.3.4
This doesnât work though, any ideas?
ââBEGIN PGP SIGNED MESSAGEââ
Hash: SHA1
What youâre trying to do isnât possible. An IP address canât
be mapped to another IP address in that way. The hosts file
is all about mapping *names* to addresses.
I donât know of a solution for your application, short of
trying to patch the binary.
Leo
ââBEGIN PGP SIGNATUREââ
Version: GnuPG v1.4.7 (MingW32)
iD8DBQFIFNF1CMEe9B/8oqERAgUdAJ9AMJFBqHZ/Xx/aSnOQDHrY4ZmFrQCfQG0t
PHt65hGLxzrMIOZ08/tgZig=
=0JVy
ââEND PGP SIGNATUREââ
Hi, I would like to know how to do the remotely from hometo office with dynamic IP address. Using RealVNC free edition.
so we can say in short that we canât change our website DNS unless YOU changing you hosting server. thanks leo for the useful article.
http://www.fosdir.com
Karl wrote: (quote) This is not true, all over the microsoft website it is said that the DNS is read FIRST and the HOSTS file read SECOND. (end quote)
Never mind the documentation â a 2 minute test shows that the hosts file overrides your DNS server. Try putting microsoft.com or whatever other host name you like in your hosts file with a redirection to some other IP, and then do a NSLOOKUP on that host name. You will see that it goes to the IP you specified in the hosts file, not what your DNS server says. What is confusing though is that even though it got the answer from the Hosts file, NSLOOKUP will say that it got the answer from your DNS server â but it is lying.
hi,
The above article is nice.It gave an details of changing DNS entry for our domain.I collected the ip details from this ip-details.Itâs having the details of finding the ip address location,domain host search also is there.It is really useful for me.
Hi, I have uploaded my site on two servers. I want to use one as a primary server and the second like a backup in case the first goes off-line. Iâm experimenting with the name servers, but it seems to choose servers randomly. I set ns1 & ns2 to first server and ns3 & ns4 to second. Any suggestions?
How can one override a DNS mapping only for a particular TCP port? Continuing with your example, letâs say the test site is actually hosted on a specific TCP port 8080, that is, http://test.example.com:8080. How can I now change the mapping in such a way that the requests for http://exmaple.com are mapped to 1.2.3.5:8080?
Is that even possible using /etc/hosts?
09-Jul-2010