web-dev-qa-db-fra.com

python simpleHTTPServer woking uniquement avec la machine locale

J'ai exécuté la commande suivante pour exécuter le serveur http

python -m SimpleHTTPServer

et recevez le message suivant

Serving HTTP on 0.0.0.0 port 8000 ...

mais je ne suis pas en mesure d'y accéder sur un autre ordinateur/mobile en réseau wifi local, j'ai essayé d'y accéder à partir de mon ordinateur local et de pouvoir y accéder.

je vous prie de savoir si quelqu'un est capable de comprendre le problème. Merci d'avance.

2
piyushmandovra

SimpleHTTPServer se lie par défaut à l'adresse IP 0.0.0.0. Ceci est une adresse spéciale qui signifie "toute adresse". Si elle devait se lier par exemple à localhost ou 127.0.0.1, vous ne pourrez vous y connecter qu’à partir de la machine locale, car 127.0.0.1 appartient au périphérique de bouclage . Mais avec 0.0.0.0, la liaison du serveur à lo, eth0 et à tout autre périphérique réseau que vous pourriez avoir.

Ainsi, votre petit serveur devrait être accessible à partir d'autres machines de votre réseau. Cela ne signifie pas que quelque chose (autre que votre petit serveur) l'interdit, peut-être un pare-feu. Vous pouvez vérifier l'état du port 8000 avec nmap à partir d'une autre machine (vous devrez peut-être installer nmap). Supposons que votre petit serveur fonctionne sur l'ip 192.168.0.1, l'autre machine est 192.168.2.101. Ensuite, vous feriez de 192.168.2.101

nmap -p 8000 192.168.0.1

La sortie devrait être quelque chose comme

PORT     STATE SERVICE
8000/tcp open  http-alt

Si l'état est "ouvert", le port est accessible et il y a quelque chose à l'écoute, votre petit serveur doit donc être accessible.

Si l'état est "fermé", le port est accessible, mais rien n'y écoute. Dans ce cas, votre serveur est peut-être terminé ou vous avez mélangé des adresses IP ou des numéros de ports.

Si l'état est "filtré", il y a une sorte de pare-feu de filtrage IP en jeu qui vous empêche d'accéder à votre petit serveur.

4

Après avoir démarré SimpleHTTPServer avec: python -m SimpleHTTPServer 8000,

Vous devez connaître l'adresse IP de votre serveur, au sein de votre réseau local, sur votre terminal à l'aide de:
linux/mac: ifconfig
fenêtres: ipconfig

puis sur votre appareil mobile, essayez d’atteindre ip_address:PORT,
Exemple: 192:168.1.5:8000

3
xilix