Mac OSX Leopard – Overriding DNS

As a web developer,I have to move sites around frequently. Sometimes this can be tricky accessing both websites before/after the move has occurred.

One case is trying to get to the “old site” after it has been moved.  This can be accomplished using a special file on a Mac (and all *nix based systems) named /etc/hosts.

You will need to know the old IP address of the website.  This can often be obtained if you know the OLD DNS Servers.

1. Launch the terminal application from Applications -> Utilities ->Terminal

This will open up terminal and place you at a command prompt.

2. From here, you want to give the commands in bold (without the $ sign): $ nslookup

This will take you to a > prompt.

3. From here, enter the word server – followed by the name of your OLD dns server

> server ns1.oldisp.com
Default server: ns1.oldisp.com
Address: 1.2.3.4#53

4. This will return you to the > prompt, and then enter your URL

> abcxyz.com
Server:         ns1.oldisp.com
Address:        1.2.3.4#53

5. This will return the IP address your old hosting company has for the website.

Name:   abcxyz.com

Address: 74.53.225.50

6. Back to the > prompt, type exit

> exit

Now to make the /etc/host entries.

1. (Re)-Launch the terminal application from Applications -> Terminal

2. You need to open /etc/hosts as the system administrator.  This is done using the sudo command:

$ sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts

3. You should be prompted for your password – this should be the same password you use to login and/or authenticate to OSX to install updates/software:

Password: ******

You then may see something like :

2009-09-30 11:31:10.322 TextEdit[30732:c0b] *** CFMessagePort:
bootstrap_register(): failed 1100 (0x44c) ‘Permission denied’, port =
0x4403, name = ‘com.apple.TextEdit.ServiceProvider’
See /usr/include/servers/bootstrap_defs.h for the error codes.

As long as Textedit is open, you will notice the terminal window seems unresponsive.

4. You should see a texteditor window with the contents of /etc/hosts :

In TextEdit, you will want to add a line line shown in the image (using the IP address and real domain name)textedit

123.123.123.123 abcxyz.com

 

Save and quit Textedit, which should return the terminal window back to the $ prompt.

 

On OSX 10.5, these changes seem to take effect immediately.  If you are running 10.4 – there may be a few other commands to give .. see here for further instructions

 

 

 

When you are all done and you need to restore your access back to the “live” site, simply reverse these directions, removing the line from the /etc/hosts file.  You can also comment the line out by placing a # in front of it.

Leave a Reply

Your email address will not be published.