【问题标题】:bind HTTServer to local ip:port so that others in LAN can see it?将 HTTServer 绑定到本地 ip:port 以便局域网中的其他人可以看到它?
【发布时间】:2010-11-09 22:06:39
【问题描述】:

我想在局域网上运行一个简单的HTTP服务器来测试它,如何将我的本地ip绑定到这个服务器上,以便同一个局域网中的每个人都可以看到它?

 addr = ("192.168.10.14", 8765)
 srvr = HTTPServer(addr,RequestHandler)

我收到此错误:

错误:[Errno 10049] 请求的地址在其上下文中无效

【问题讨论】:

    标签: python networking


    【解决方案1】:

    试试这个:

    addr = ("0.0.0.0", 8765)
    

    这是我所做的:

    import BaseHTTPServer
    from SimpleHTTPServer import SimpleHTTPRequestHandler
    
    addr = ("0.0.0.0", 8765)
    
    serv = BaseHTTPServer.HTTPServer(addr, SimpleHTTPRequestHandler)
    
    serv.serve_forever()
    

    从另一台机器得到:

    192.168.1.2 - - [09/Nov/2010 22:26:09] "GET / HTTP/1.1" 200 -
    

    【讨论】:

    • @Gollu:嗯?一秒钟我会检查
    • @Gollum : 你能重新检查一下吗,因为我只是在我的本地网络中测试并且它正在工作
    【解决方案2】:

    更简单:

    cd 到你想在终端中服务和运行的目录

    python -m http.server 8888 --bind 0.0.0.0
    

    然后在你的局域网上的另一个框中输入

    192.168.x.x:8888

    在浏览器中,其中 192.168.x.x 是您局域网上服务盒的地址,您将在 ifconfig 输出中看到该地址

    【讨论】:

      【解决方案3】:

      如果将地址保留为空字符串,则可以绑定到所有接口

      addr = ("", 8765)
      

      如果你真的想只绑定到你的一个接口,首先确保你输入的是本地接口的地址,而不是你和你的盒子之间的某个 NAT 设备的地址。

      【讨论】:

      • 如果我这样做,我只能从我的机器连接。同一局域网上的其他机器看不到这个。
      • 检查您的防火墙设置。
      • 空字符串是唯一对我有用的东西。谢谢。
      【解决方案4】:

      为什么不能使用python -m SimpleHTTPServer [port]Python - SimpleHTTPServer

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 2010-10-02
      • 2019-10-05
      • 1970-01-01
      • 2021-01-16
      • 2022-10-05
      • 2014-01-28
      • 1970-01-01
      相关资源
      最近更新 更多