2016-12-01 61 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地址進行訪問。

以下可以提供額外的信息

相關問題