How to map an IP adress to localhost?

16

5

I want to map the IP address 192.168.1.222 to 127.0.0.1 so that if I use 192.168.1.222 in the web browser or ping command I get the response (and that from my 127.0.0.1).

Is this possible via routing tables or do I have to add some sort of virtual network adapter?

I try to deal with this problem on a Windows 7 machine and have no other options than a Windows XP maybe.

I'm stuck right there.

Sebastian

Posted 2011-11-30T15:31:30.753

Reputation: 183

Don't know if that's possible, but it's easy to do with hostnames. Is it just for one computer? – Canadian Luke – 2011-11-30T15:46:43.163

Okay, two questions here: 1. If you're trying to get to the local system in a web browser, why not just use 127.0.0.1 all the time? 2. If this is for the local system, why deal with cumbersome IPs at all instead of using the reserved hostname localhost? – Iszi – 2011-11-30T17:11:06.727

@DiogoRocha Please make your edits more substantial than these. A single character or capitalization of a term aren't nearly relevant enough for an edit that push topics to the front page. This and this topic apply to suggested edits, but the principle holds even once you have editing privileges. Thanks.

– Daniel Beck – 2011-11-30T21:35:38.647

@Luke: I can't work with hostnames so the hosts file is not viable here – Sebastian – 2011-12-01T07:39:18.837

@Iszi: I need it to get a software think, that there is another machine present. – Sebastian – 2011-12-01T07:39:26.183

Do you mind clarifying what software/service you're working with? There may be an easier way to deal with this. – Iszi – 2011-12-01T14:10:02.177

Answers

15

You would have to assign the IP address 192.168.1.222 to one of your network interfaces. Merely altering the routing table will not have the desired result; traffic would indeed arrive at the localhost, but your computer will then conclude the message has not yet reached its destination. Lacking any further options of passing the message along, it will then be dropped.

Assigning 192.168.1.222 to one of your physical interfaces would be the simplest solution, but if you do not have a spare interface and do not want your changes to affect the rest of the network, you can create another loopback interface, similar to the one at 127.0.0.1.

The procedure has changed somewhat since Windows XP. Open the device manager via the control panel and in the Action menu, click 'Add legacy hardware'. If this option is missing, the wizard can be started via the executable 'hdwwiz.exe'.

Device manager

When asked, select hardware manually from a list rather than installing it automatically. In the following menus, select 'Network Adapter', 'Microsoft' as manufacturer and look for the 'Microsoft Loopback Adapter'. If the device has been installed correctly, a new network adapter will have appeared in the device manager.

Open the Network and Sharing Center via the control panel and click 'Change adapter settings' in the left bar. The following window will appear, including our newly installed adapter.

Network connections

Open its properties. From the Networking tab, select the IPv4 item and click the Properties button. Enter the IP address you wish to assign to the loopback interface. Because it will be the only interface on its network, we enter '255.255.255.255' as the subnet mask.

IP addresses

Voila.

C:\Users\Marcks>ping 192.168.1.122

Pinging 192.168.1.122 with 32 bytes of data:
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.122:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Marcks Thomas

Posted 2011-11-30T15:31:30.753

Reputation: 5 749

1On Windows 7, the device was called "Microsoft KM-TEST Loopback Adapter". Otherwise, this comment was spot-on, and it worked perfectly for me! Thank you very much! – Real Name Redacted – 2015-02-20T15:41:24.027

On Windows 10's Device Manager that option is not available anymore. It can be accessed by running hdwwiz.exe. – Samir Aguiar – 2018-02-19T22:14:56.757

8

Run under admin command prompt:

C:\Windows\system32>netsh int ip add address "Loopback" 192.168.1.222

C:\Windows\system32>netsh int ip show addresses

接口 "Loopback Pseudo-Interface 1" 的配置
    DHCP 已启用:                          否
    IP 地址:                           192.168.1.222
    子网前缀:                        192.168.1.0/24 (掩码 255.255.255.0)
    IP 地址:                           127.0.0.1
    子网前缀:                        127.0.0.0/8 (掩码 255.0.0.0)
    InterfaceMetric:                      75

C:\Windows\system32>ping 192.168.1.222

正在 Ping 192.168.1.222 具有 32 字节的数据:
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128

lk_vc

Posted 2011-11-30T15:31:30.753

Reputation: 216

7

This should work in both Windows 7 and XP, from command window:

route ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

If you want the new route to be persistent between reboots:

route -p ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

Raihan

Posted 2011-11-30T15:31:30.753

Reputation: 171

This worked perfectly for me, if and only if I add a matching entry in the hosts file. However, note that my case is inverted, in that I am mapping localhost to an external IP (in this case the IP of my VM host). – Jim O'Brien – 2016-03-30T15:06:00.413

@JimO'Brien Does that mean you used route ADD 127.0.0.1 MASK 255.255.255.255 192.168.1.222 instead? – Shayan – 2019-11-23T19:38:13.037

This command doesn't work for me, I get: The route addition failed: The parameter is incorrect. – Shayan – 2019-11-24T11:50:56.197

This method doesn't work. I don't get the ping on 192.168.1.222 to return a response. What I did now was to add multiple IPs to the interface (IP Aliasing) but even this doesn't work since the service I try to communicate with seems to listen to 1 IP only. – Sebastian – 2011-12-01T07:38:09.023

2Now that I think of it, I'm pretty sure this won't work unless 192.168.1.222 is an IP that actually belongs to the local machine, in which case it would be redundant anyway. It will force the computer to send packets destined for 192.168.1.222 to the loopback, but on the receiving end they'll be dropped if that's not the local IP. – Iszi – 2011-12-01T14:09:13.783