检索客户端IP:ranch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检索客户端IP:ranch相关的知识,希望对你有一定的参考价值。

我正在使用:ranch在我的Phoenix应用程序中接收TCP数据包。

首先,我在服务器中创建了一个监听器:

:ranch.start_listener(tcp_echo, ranch_tcp, [{port, 5555}], echo_protocol, [] )

我怎样才能在echo_protocol中打印客户端IP?

答案

牧场包括sample echo application

echo_protocol.erl中,有一个init函数接受来自客户端的连接:

init(Ref, Socket, Transport, _Opts = []) ->
    ok = ranch:accept_ack(Ref),
    loop(Socket, Transport).

您可以在那里显示客户端IP地址:

init(Ref, Socket, Transport, _Opts = []) ->
    ok = ranch:accept_ack(Ref),
    {ok, {IpAddress, _}} = inet:peername(Socket),
    io:format("Client ~p~n", [IpAddress]),
    loop(Socket, Transport).

它将以如下格式显示:

Client {127,0,0,1}

以上是关于检索客户端IP:ranch的主要内容,如果未能解决你的问题,请参考以下文章

ranch代码简述

使用 webRTC 检索客户端计算机的公共 IP 地址

用于从 cloudkit 检索单列的代码模式/片段

如何从片段中检索gridview中的图像?

如何通过 Amazon API Gateway (JAVA) 检索用户的公共 IP 地址

检索客户端请求 ip 地址