web-dev-qa-db-fra.com

Différence entre Localhost et l'adresse IP

Si vous liez une prise en Python à localhost, 8200 Ceci est accessible via http: // localhost: 8200 / . Mais pas http: // xxxx : 8200 /

Si vous liez une prise en Python à xxxx, 8200, Machinename, 8200 Ceci est accessible via http: // xxxx: 8200 / et http:// Machinename: 8200 / , mais pas http: // localhost: 8200 /

Je pensais que localhost signifiait 'cette machine', et que l'utilisation de celle-ci "en boucle" à l'adresse IP de la machine, mais il semble être différent des IP.

Est-ce que 127.0.0.1 est toujours une adresse IP différente à l'adresse IP de machines?

Mise à jour:

Je comprends que les chiffres réels sont différents, mais que font la boucle?

Par exemple wikeppedia dit que
[.____] 'pointant un navigateur Web sur les URL http://127.0.0.1/ ou http: // localhost / Accéder à cet ordinateur propre site Web '

mais ce site Web sera également accessible sur x.x.x.x et est probablement configuré avec une seule prise sur x.x.x.x. Alors, comment fonctionne les deux références alors?

Conclusion:

Je pense que je comprends enfin que 127.0.0.1 et X.x.x.x fonctionnent comme celui-ci

--127.0.0.1 ==\
               >- Computer
--x.x.x.x   ==/

et pas

--127.0.0.1 ==\
--------------- x.x.x.x >- Computer

ou alors

--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer

Merci tout pour l'aide

17
David

Pour répondre à ta question.

127.0.0.1 n'est pas simplement une adresse IP différente à l'adresse IP de la machine, c'est également une interface différente. 127.0.0.1 ne devrait pas être vu sur le réseau local. C'est une adresse IP interne spéciale pour l'adaptateur de bouclage.

x.x.x.x sera votre carte Ethernet.

à la manière dont 'localhost' est simplement une entrée dans votre fichier d'hôtes qui pointe vers 127.0.0.1

Si vous liez une prise à 127.0.0.1:8200, seuls les clients fonctionnant localement seront en mesure d'y accéder et uniquement avec http://127.0.0.0.1:82 ou http: // Localhost: 82 (ou un DNS ou héberge une entrée de fichier qui pointe vers 127.0.0.1).

Un socket lié à x.x.x.x: 8200 ne sera disponible que via http: //x.x.x.x: 82 ou une entrée de fichier DNS ou héberge une entrée de fichier qui pointe à cela.

La liaison d'une prise à 127.0.0.1 ne le rend pas automatiquement disponible sur l'interface Ethernet.

C'est pourquoi vous ne pouvez pas vous connecter à x.x.x.x: 8200

Vous pouvez lier le port 8200 à toutes les interfaces disponibles (0.0.0.0), alors cela devrait fonctionner.

Autres caractéristiques de l'adaptateur de bouclage:

L'interface de bouclage est une interface virtuelle. Il est souvent utilisé pour permettre aux programmes de se parler sur la même machine. Ce n'est pas un moyen de faire référence à l'adresse IP de la machine. 127.0.0.1 IS L'adresse IP de l'adaptateur virtuel de bouclage.

L'autre chose à propos de l'adaptateur de bouclage est que parce que c'est virtuel, cela ne transmet aucun paquets à la carte réseau.

18
Matt H

Chaque adresse IP du système est indépendante et peut être liée par des sockets séparément, à l'exception de l'adresse spéciale 0.0.0.0 qui indique au système d'exploitation pour lier la prise à toutes les interfaces.