【问题标题】:Getting the request IP address with Pyramid使用 Pyramid 获取请求 IP 地址
【发布时间】:2017-11-22 07:25:34
【问题描述】:

我正在使用 Pyramid 框架,我想访问发起请求的 IP 地址。我假设它在某处的请求对象(传递给每个视图函数)中,但我找不到告诉我它在哪里的文档。

【问题讨论】:

标签: python pyramid


【解决方案1】:

它在request.remote_addr

您可以在pyramid.request 文档中找到它。

【讨论】:

  • 非常感谢。我在文档中看到了这一点,但我没有意识到“remote_addr”的意思是“IP 地址”。他们为什么不直接称它为“IP 地址”?
  • 因为“IP 地址”不明确——是服务器地址、客户端地址还是其他? “remote_addr”是远程端的地址,即客户端。
【解决方案2】:

您可以使用:request.client_addr

【讨论】:

  • "用户代理可以将其他人的 IP 或任何字符串放入 HTTP_X_FORWARDED_FOR,因为它是一个普通的 HTTP 标头。转发代理也可以提供不正确的值(私有 IP 地址等)。你不能“盲目地”相信此方法的结果会为您提供有效数据,除非您确定 HTTP_X_FORWARDED_FOR 具有正确的值。WSGI 服务器必须位于受信任的代理之后才能做到这一点。因此,如果我理解正确,您应该使用remote_addr,除非您使用的是设置正确 HTTP_X_FORWARDED_FOR 的受信任代理。
  • @YannDinendal:是的,你是对的。抱歉,如果我没有澄清这一点。
【解决方案3】:

或者你可以使用request.environ['REMOTE_ADDR']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2019-02-01
    • 2017-07-10
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多