如何从 SimpleHTTPServer 获取客户端 IP
How to get client IP from SimpleHTTPServer
使用 Python 中的 SimpleHTTPServer
模块构建一个简单的文件服务器,但是我 运行 在尝试从连接的客户端获取 IP 时遇到了问题。这是我的..
import SimpleHTTPServer
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8080), Handler)
print "Serving local directory"
while True:
httpd.handle_request()
print Handler.client_address[0]
当客户端连接时,我得到..
AttributeError: class SimpleHTTPRequestHandler has no attribute 'client_address'
我知道这是因为我还没有实例化 class,但是有没有另一种方法可以从客户端获取 IP 而不必创建处理程序实例?建立连接后,客户端的 IP 会输出到控制台,我只需要一种在我的脚本中获取该 IP 的方法。
谢谢!
确实,Handler
class 对象与特定实例无关。设置您自己的处理程序 class,如下所示:
import SimpleHTTPServer
import SocketServer
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def handle_one_request(self):
print(self.client_address[0])
return SimpleHTTPServer.SimpleHTTPRequestHandler.handle_one_request(self)
print("Serving local directory")
httpd = SocketServer.TCPServer(("", 8080), MyHandler)
while True:
httpd.handle_request()
使用 Python 中的 SimpleHTTPServer
模块构建一个简单的文件服务器,但是我 运行 在尝试从连接的客户端获取 IP 时遇到了问题。这是我的..
import SimpleHTTPServer
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8080), Handler)
print "Serving local directory"
while True:
httpd.handle_request()
print Handler.client_address[0]
当客户端连接时,我得到..
AttributeError: class SimpleHTTPRequestHandler has no attribute 'client_address'
我知道这是因为我还没有实例化 class,但是有没有另一种方法可以从客户端获取 IP 而不必创建处理程序实例?建立连接后,客户端的 IP 会输出到控制台,我只需要一种在我的脚本中获取该 IP 的方法。
谢谢!
确实,Handler
class 对象与特定实例无关。设置您自己的处理程序 class,如下所示:
import SimpleHTTPServer
import SocketServer
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def handle_one_request(self):
print(self.client_address[0])
return SimpleHTTPServer.SimpleHTTPRequestHandler.handle_one_request(self)
print("Serving local directory")
httpd = SocketServer.TCPServer(("", 8080), MyHandler)
while True:
httpd.handle_request()