2016-10-21 35 views
5

muszę uzyskać adres IP klienta, to nie działa:Jak uzyskać adres IP klienta?

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

powodu key :inet not found in: %Plug.Conn. Jak mogę uzyskać adres IP?

Odpowiedz

8

zobacz to Request fields:

REMOTE_IP - IP klienta, na przykład: {151, 236, 219, 228}. To pole ma być zastąpione przez wtyczki, które rozumieją np. nagłówek X-Forwarded-For lub protokół PROXY HAProxy. Domyślnie jest to adres IP rówieśnika.

To jest to, czego szukasz:

conn.remote_ip 
+0

tak. jak przekonwertować go na ciąg? – Patuda

+0

Powinieneś spróbować rozwiązać to sam, zanim zaczniesz zadawać kolejne pytanie. 'conn.remote_ip' |>' Tuple.to_list' |> 'Enum.map (fn x -> Integer.to_string (x) end)' |> 'Enum.join (", ")' – TheAnh

+5

'conn.remote_ip | > Tuple.to_list |> Enum.join (".") 'Będzie działać również. Nie trzeba wykonywać wywołania 'Integer.to_string'. –

4

Get IP:

conn.remote_ip

Odlewy z adresu IP_ADDRESS ciąg:

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