如何在Python中获取远程IP地址?
我尝试搜索Google但找不到任何有用的结果。 os.environ['REMOTE_ADDR']
正在提供KeyError: 'REMOTE_ADDR'
答案 0 :(得分:3)
您正在访问操作系统的os
环境,而不是request
。
WSGI callable应该传递两个变量environ
和start_response
,而environ
变量将包含您正在寻找的变量。
如果您运行os.environ
应用,那些变量只会出现在实际的CGI
中。
根据您使用的网络框架,您可能无法访问此框架。如果您传递了request
个对象,则可能会以request.META
或类似的方式结束。
如果你没有使用任何框架,那将在the environ
dict that is passed to your wsgi callable。
如另一个答案中所述,REMOTE_ADDR
不符合规范,但如果你使用的是Apache的mod_wsgi
,它应该在那里
答案 1 :(得分:2)
如果您有权访问TCP套接字,则可以使用socket.getpeername()
获取远程地址。 Docs are here.