如何获取客户端的IP地址?

时间:2016-10-21 03:11:25

标签: elixir phoenix-framework

我需要获取客户端的IP地址,这不起作用:

  def create(conn) do
    ip_address = conn.inet.ip_address
    # ....

归因于key :inet not found in: %Plug.Conn。我怎样才能获得IP地址?

2 个答案:

答案 0 :(得分:14)

获取IP:

conn.remote_ip

从ip_address转换为字符串:

to_string(:inet_parse.ntoa(conn.remote_ip))

答案 1 :(得分:9)

检查Request fields

  

remote_ip - 客户端的IP,例如:{151,236,219,228}。该字段旨在被例如理解的插头覆盖。 X-Forwarded-For标头或HAProxy的PROXY协议。它默认为对等的IP。

这就是你要找的东西:

conn.remote_ip