2016-12-01 94 views
0

使用Python的SimpleHTTPServer,我怎样才能让这个服务器仅响应来自本地计算机的请求?如何限制在Python中访问本地主机的页面?

是否有语言无关的方式来做到这一点?也许通过使用一个不公开的特定端口,或告诉防火墙不允许从外部访问该端口?

这个问题类似于this one,但具体到与Python的SimpleHTTPServer写了一个服务器。

回答

2

你可以使用环回接口。 localhost127.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地址进行访问。

以下可以提供额外的信息

相关问题