web-dev-qa-db-fra.com

Mappage d'une adresse IP sur une autre dans le fichier 'hosts'

Le fichier hôtes (%SystemRoot%\system32\drivers\etc\hosts) vous permet de faire pointer google.com sur, par exemple, 127.0.0.1 sur votre ordinateur local, mais que faire si je le voulais? faire, par exemple, 192.168.1.5 point sur 127.0.0.1 sur ma machine locale? Y-a-t-il un moyen de faire ça? Cela peut-il être fait dans le fichier hosts sous Windows 7?

10
neubert

Vous ne pouvez pas utiliser le fichier hosts pour cela.
Ceci mappe uniquement les noms sur les adresses IP.

Je n'ai pas essayé cela moi-même, mais je suppose que vous pouvez abuser de la commande route pour ceci:

route add 192.168.1.5 127.0.0.1

Cela indique à la pile IP d'acheminer tout le trafic de 192.168.1.5 vers la passerelle à 127.0.0.1. Bien sûr, il n’ya pas de passerelle dans la région, ce qui ne sert donc qu’au trafic en trou noir. Vous ne pouvez rien faire d'utile avec le trafic.

10
Tonny

Vous ne pouvez pas mapper une adresse IP sur une autre dans un fichier hôtes.

Vous pouvez probablement réécrire les adresses IP de certains logiciels de pare-feu sur certaines plates-formes (peut-être sous Linux iptables ou équivalent).

1
RedGrittyBrick

Comme tout le monde l'a noté, vous ne pouvez pas le faire via le fichier hosts. Vous avez besoin d’une certaine forme de réécriture de paquet: la plus courante est la traduction d’adresses réseau . NAT est normalement utilisé pour autoriser plusieurs périphériques à utiliser la même adresse IP "publique" (et c'est la seule forme que beaucoup de routeurs résidentiels peu coûteux peuvent utiliser), mais un NAT plus complet Un moteur tel que celui trouvé dans Cisco IOS ou Linux IPTables peut effectuer une réécriture généralisée.

Notez que NAT n’est pas une solution miracle à cet égard: certains protocoles tels que FTP incluent des adresses IP dans les paquets de données ainsi que dans l’en-tête IP, et si le moteur NAT ne gère pas de tels protocoles spécialement, simplement ré-écrire l'en-tête fera casser des choses.

1
Mark