2016-10-21 13 views
5

私は、これは動作しません、クライアントのIPアドレスを取得する必要があります。クライアントのIPアドレスを取得する方法は?

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

によるkey :inet not found in: %Plug.Connに。 IPアドレスを取得するにはどうしたらいいですか?

答えて

8

チェックこのRequest fields

REMOTE_IP - クライアントのIP、例えば:{151、236、219、228}。このフィールドは、例えば以下を理解するプラグによって上書きされることを意味する。 X-Forwarded-ForヘッダーまたはHAProxyのPROXYプロトコル。デフォルトではピアのIPになります。

これは、あなたが探しているものです:

conn.remote_ip 
+0

をはい。それを文字列に変換する方法は? – Patuda

+0

別の質問をし続ける前に、自分で解決するようにしてください。 '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( "。") 'も動作します。 'Integer.to_string'呼び出しを行う必要はありません。 –

4

IPを取得:IP_ADDRESSから文字列へのキャスト

conn.remote_ip

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

関連する問題