无法连接到python -m SimpleHTTPServer服务器

Stu*_*ans 6 python command-line server

这可能是一个非常简单的问题,但我无法在任何地方找到答案.在有关它的在线文章中,他们没有显示使用SimpleHTTPServer共享目录的确切过程.我已成功运行该命令并让服务器运行,但我只能在启动它的机器上访问它.

192.168.1.2:8000
Run Code Online (Sandbox Code Playgroud)

我在Windows机器和iPad上试过它(虽然这并没有真正有所作为)在本地网络上.要访问它,我一直在使用我通过运行找到的本地IP地址,ifconfig | grep inet返回(以及其他匹配项):

inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255

在网上搜索后,我发现:https://github.com/shbhrsaha/instant-sharing/blob/master/share.py.

有一个功能,据说给你一个方便的网址与你的朋友分享,但我尝试在本地运行,我得到的只是"localhost.localdomain",显然返回127.0.0.1

我怎样才能做到这一点?

Mik*_*maa 8

当您启动SimpleHTTPServer时,它会告诉它正在侦听哪些IP地址:

  python -m SimpleHTTPServer
  Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)

地址0.0.0.0表示它侦听所有可用的IP地址.因此,在这种情况下,您应该通过http://192.168.1.two:8000到达服务器

如果它不起作用,则很可能是网络问题.您可以使用telnet命令(Windows和UNIX都可用)对此进行测试:telnet将在某个IP和某个端口上打开TCP/IP连接.

例如,在UNIX上,您可以:

  telnet 192.168.1.2 8000 
Run Code Online (Sandbox Code Playgroud)

如果你得到:

 telnet 192.162.1.2 8000
 Trying 192.162.1.2...
 telnet: connect to address 192.162.1.2: Connection refused
 telnet: Unable to connect to remote host
Run Code Online (Sandbox Code Playgroud)

...这意味着SimpleHTTPServer正在运行.

如果等待很长时间,则意味着您的路由器/防火墙阻止了连接.

如果你得到答复:

telnet localhost 8000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)

...浏览器应该也可以.您只需按Enter键即可退出telnet(SimpleHTTPServer将关闭连接).