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

是否可以仅在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不兼容。另外,有关更多信息,请参阅它的文档。

  • 问题内容: 例如,假设我想“提取” 为三个单独的变量,例如: 我该怎么做,而忽略了 “为什么要这么做呢?” 您可能会被问到这个问题。 之前已经多次问过类似的问题,但是从未给出真正的答案,因为OP真正需要的是使用不同的方法。很好,但这有可能吗? 我看过反射,似乎没有任何方法可以使我甚至向实例添加额外的字段,更不用说动态创建本地了。 问题答案: 是否可以在Java运行时创建变量? 简单回答是不。 Ja