How to change IP address to point to localhost?

A sandbox enviroment of a web app is reachable directly by an IP address: http://<my_ip_address> without a login name.

Is there a way to make a virtual host in my local machine, named as <my_ip_address>, and change /etc/hosts so it will "redirect" to my localhost?

127.0.0.1 <my_ip_address>

So when I load the url http://<my_ip_address> the browser will point to my localhost? The way I can already redirect domain names.


Hosts file can only be used to associate a domain name with an IP; it cannot map IP to IP.

Altering IPs can be done by a firewall. On Linux, the default firewall is controlled by iptables commands. "man iptables" is the documentation. Google "explain iptables" for introductory explanations.

Some links:

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

Specifically, you want to change OUTGOING requests from your PC to an IP address (<my_ip_address>), so that they instead go to a different IP address, in this case 127.0.0.1. You want to perform NAT (Network Address Translation), given the "destination IP" (<my_ip_address>; e.g. 123.45.67.89), changing it to a different "destination IP" (127.0.0.1).

Try this (in place of 123.45.67.89, put the ip_address that needs to be altered):

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1

Details:

-t nat = table for translating one address to another

-A OUTPUT = append to the list of rules for locally-generated, outgoing, packets. SECURITY WARNING: Make sure the rule includes this OUTPUT directive. If you don't, the rule would create a possible security hole, because matching Incoming packets from remote locations would also be directed to localhost.

-p all = apply to all protocols (tcp, udp, and icmp).

-d 123.45.67.89 = the original IP address that the packet was going to (its destination).

-j DNAT = if the rule matches (in this case, if an outgoing packet has destination IP 123.45.67.89), then handle it with DNAT, which alters the destination.

--to-destination 127.0.0.1 = tells DNAT what to do; replace the original destination with "127.0.0.1".

(NOTE: If you had a more complex situation, such as intercepting requests for specific web pages, an alternative solution might be to use "proxy" software.)