Si vous liez un socket en Python à localhost, 8200, cela est accessible via http: // localhost: 8200 / . mais pas http: // xxxx: 8200 /
Si vous liez un socket en Python à xxxx, 8200, machinename, 8200, cela est accessible via http: // xxxx: 8200 / et http: // machinename: 8200 / , mais pas http: // localhost: 8200 /
Je pensais que localhost signifiait «cette machine», et que son utilisation «rebouclerait» à l'adresse IP de la machine, mais il semble que ce soit des ips différents.
127.0.0.1 est-il toujours une adresse IP différente de l'adresse IP des machines?
mise à jour:
Je comprends que les chiffres réels sont différents, mais que fait le bouclage?
Par exemple, wikepedia dit que «pointer un navigateur Web vers les URL http://127.0.0.1/ ou http: // localhost / accédera au propre site Web de cet ordinateur»
mais ce site Web sera également accessible sur xxxx, et sera vraisemblablement mis en place avec une seule prise sur xxxx. Alors, comment fonctionnent les deux références?
conclusion:
Je pense que je comprends enfin que 127.0.0.1 et xxxx fonctionnent comme ça
--127.0.0.1 ==\
>- Computer
--x.x.x.x ==/
et pas
--127.0.0.1 ==\
--------------- x.x.x.x >- Computer
ou
--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer
Merci à tous pour l'aide
Réponses:
Pour répondre à ta question.
127.0.0.1 n'est pas seulement une adresse IP différente de l'adresse IP de la machine, c'est aussi une interface différente. 127.0.0.1 ne devrait pas être vu sur le réseau local. Il s'agit d'une adresse IP interne spéciale pour l'adaptateur de bouclage.
xxxx sera votre carte Ethernet.
par la façon dont «localhost» est simplement une entrée dans votre fichier d'hôtes qui pointe vers 127.0.0.1
Si vous liez un socket à 127.0.0.1:8200, seuls les clients s'exécutant localement pourront y accéder et uniquement avec http://127.0.0.1:8200 ou http: // localhost: 8200 (ou une entrée de fichier dns ou hosts qui pointe vers 127.0.0.1).
Un socket lié à xxxx: 8200 sera uniquement disponible via http: // xxxx: 8200 ou une entrée de fichier dns ou hosts qui pointe vers cela.
La liaison d'un socket à 127.0.0.1 ne le rend pas automatiquement disponible sur l'interface Ethernet également.
C'est pourquoi vous ne pouvez pas vous connecter à xxxx: 8200
Vous pouvez lier le port 8200 à toutes les interfaces disponibles (0.0.0.0), alors cela devrait fonctionner.
la source
Légèrement inexact. Il peut le faire. De même, il peut ne pas afficher de site Web et il est même possible d'afficher un site Web interne différent de celui que vous obtenez lorsque vous utilisez votre adresse xxxx.
127.0.0.1 pointe vers votre propre machine, mais cela ne signifie pas qu'elle se comportera de la même manière lorsqu'elle atteindra votre machine
Si vous voulez une analogie non technique, vous pouvez les considérer comme des portes différentes dans votre maison.
Ils pointent tous les deux vers la même maison mais ce n'est pas la même chose. Il est possible pour chaque porte de vous emmener dans la même pièce ou ils pourraient vous emmener dans une pièce différente. Il est également possible de verrouiller une porte et non l'autre.
Lorsque vous configurez un site Web, vous spécifiez les adresses auxquelles se lier et, bien souvent, la réponse est toutes les adresses. (Cela équivaut à ce que toutes les portes vous emmènent dans la même pièce)
Vous pouvez également spécifier le site Web à lier à une seule adresse. (Cela revient à verrouiller toutes les portes sauf une.)
Si vous avez deux (ou plus) sites Web, vous pouvez les lier à des adresses distinctes. (Cela équivaut à avoir chaque porte allant dans des pièces séparées).
Un exemple du fonctionnement des deux références, IIS est installé sur mon ordinateur Windows 7, lorsque je vais dans le Gestionnaire IIS et que je fais un clic droit sur le site Web par défaut, cela me donne une option de menu «Modifier les liaisons». La sélection qui fait apparaître une liste de liaisons. Je n'en ai qu'une, mais pour l'adresse IP, elle a *, ce qui signifie que IIS écoute toutes mes adresses IP.
la source
127.0.0.1:5000
à un site Web et192.168.1.104:5000
à un autre site. La clé est que celaaddress:port
signifie une autre pièce (service) dans la maison (l'ordinateur).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 de lier le socket à toutes les interfaces.
la source