使用Python的SimpleHTTPServer,我该怎样才能使服务器只响应来自本地机器的请求?
是否存在与语言无关的方法?也许通过使用一个不向公众开放的特定端口,或者告诉防火墙不允许从外部访问该端口?
此问题类似于this one,但特定于使用Python的SimpleHTTPServer编写的服务器。
答案 0 :(得分:2)
您可以使用环回接口。 localhost
或127.0.0.1
指的是本地地址,绕过完整的网络堆栈,无法通过网络访问。见wikipedia
使用SimpleHTTPServer example。
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
我们可以绑定到特定地址,您可以使用分配给您的机器/接口的地址,或者在您的情况下,使用环回设备。
httpd = SocketServer.TCPServer(("127.0.0.1", PORT), Handler)
然后,您可以http://127.0.0.1:8000/
或http://localhost:8000/
访问服务器。使用您的机器分配的IP地址无法从本地计算机和网络访问服务器。
以下内容可能会提供其他信息