当前位置: 首页 > 面试题库 >

是否可以仅在localhost上运行python SimpleHTTPServer?

萧业
2023-03-14
问题内容

我有一个vpn连接,当我运行python -m SimpleHTTPServer时,它在0.0.0.0:8000上提供服务,这意味着可以通过本地主机
我的真实IP访问它。我不想让机器人扫描我,并且对仅通过本地主机访问服务器感兴趣。

可能吗?

python -m SimpleHTTPServer 127.0.0.1:8000  # doesn't work.

也欢迎任何其他可以使用命令行立即执行的简单http服务器。


问题答案:

如果您阅读了源代码,您将看到只能在命令行上覆盖端口。如果你想改变它在服务的主机,你将需要实现test()的方法SimpleHTTPServerBaseHTTPServer自己。但这应该很容易。

这是您可以轻松实现的方法

import sys
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer


def test(HandlerClass=SimpleHTTPRequestHandler,
         ServerClass=BaseHTTPServer.HTTPServer):

    protocol = "HTTP/1.0"
    host = ''
    port = 8000
    if len(sys.argv) > 1:
        arg = sys.argv[1]
        if ':' in arg:
            host, port = arg.split(':')
            port = int(port)
        else:
            try:
                port = int(sys.argv[1])
            except:
                host = sys.argv[1]

    server_address = (host, port)

    HandlerClass.protocol_version = protocol
    httpd = ServerClass(server_address, HandlerClass)

    sa = httpd.socket.getsockname()
    print "Serving HTTP on", sa[0], "port", sa[1], "..."
    httpd.serve_forever()


if __name__ == "__main__":
    test()

并使用它:

> python server.py 127.0.0.1     
Serving HTTP on 127.0.0.1 port 8000 ...

> python server.py 127.0.0.1:9000
Serving HTTP on 127.0.0.1 port 9000 ...

> python server.py 8080          
Serving HTTP on 0.0.0.0 port 8080 ...


 类似资料:
  • 我试图弄清楚是否可以在Express.js应用程序的上下文中运行TestCafe测试。我的想法是创建一个表单,接受输入(如UPC代码),然后单击表单上的submit,它将导致TestCafe测试以无头模式(在某处)生成,并将UPC加载到此页面https://www.ebay.com/sh/research. 从那里,TestCafe将从页面获得结果并将它们粘贴到我的数据库中。 我把测试放在一个名为

  • 问题内容: 我正在阅读有关go包“运行时”的信息,并发现我可以(除其他功能外)(func GOMAXPROCS(n int))设置可用于运行程序的CPU单元数。我可以强制goroutine在我选择的特定CPU上运行吗? 问题答案: 在现代Go中,我不会为了提高效率而将goroutine锁定在线程上。Go 1.5 添加了goroutine调度亲和力,以最小化goroutine在OS线程之间切换的频率

  • 问题内容: 我知道不可能在ubuntu上编码测试,因为我需要苹果的xCode,但是我想知道,一旦编码,是否可以在Ubuntu上运行自动化测试。 谢谢。 问题答案: 否,不幸的是,appium需要使用xCode才能使用UiAutomation和工具在iOS上执行测试。

  • 问题内容: 如何在Windows上将goroutine的运行委托给另一个非管理员帐户?我看到您可以使用在Linux上执行此操作。我看不到如何使用Windows syscall软件包在Windows上执行此操作。我希望能够在程序运行时设置goroutine在其下运行的帐户。这可能吗? 背景知识:- 我想切换运行goroutine的用户,以便当我使用go-oci8时,可以更改在数据库连接期间传递给Or

  • 问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。

  • 问题内容: 是否可以使用html5按钮事件运行bat /可执行文件?在IE中,如果我没有记错的话,可以使用Shell对象来实现。 问题答案: 这就是我所做的。我希望在我们的网络上设置HTML页面,这样就不必导航到各个文件夹来安装或升级我们的应用程序。因此,我要做的是在每个人都可以访问的“共享”驱动器上设置一个.bat文件,在该.bat文件中,我有以下代码: HTML代码是: (确保您的斜杠正确无误