【问题标题】:How to get the IP address of a client request in an Aqueduct Dart server如何在 Aqueduct Dart 服务器中获取客户端请求的 IP 地址
【发布时间】:2020-02-20 02:24:18
【问题描述】:

我正在制作 Aqueduct 服务器。我想知道监控日志和提供基于位置的一般内容的客户端请求的 IP 地址。

在 Aqueduct 中,我看不到如何获取 IP 地址。

我本来想说我尝试了 X、Y 和 Z,但没有成功,但我刚刚找到了答案,所以我将在下面添加。

【问题讨论】:

    标签: dart aqueduct


    【解决方案1】:

    在您的控制器中,您可以从 Request 获取 IP 地址。

    String ipAddress = request.connectionInfo.remoteAddress.address;
    

    请注意,如果您的服务器在 nginx 代理后面运行,那么您必须配置 nxinx 以将真实 IP 转发到 Aqueduct。为此,您可以将带有远程地址的 X-Real-IP 标头添加到服务器块中的代理 API 位置。

    location /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:8888;
        proxy_http_version 1.1;
    }
    

    然后在 Aqueduct 中,您可以从原始标头中获取 IP 地址:

    String ipAddress = request.raw.headers['x-real-ip'].first;
    

    更多信息在这里:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多