ejabberd IP 地址
有谁知道是否有直接的方法将 IP 地址映射到登录 ejabberd 的用户?我通过修改 ejabberd_receiver.erl 并从此处调用 inet:peername(Socket) 找到了一种间接方法: 确定 Erlang 中传入 TCP/IP 连接的 IP 地址和端口
但似乎没有办法将套接字链接到用户他们成功通过身份验证后。如果有人知道方法,请告诉我!谢谢。
Does anyone know if there's a direct way to map an IP address to a user logged into ejabberd? I found an indirect way by modifying ejabberd_receiver.erl and calling inet:peername(Socket) from here: Determining IP address and port of an incoming TCP/IP connection in Erlang
but there doesn't seem to be a way to link a socket to a user after they've successfully been authenticated. If anyone knows of a way, please let me know! Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据安装的大小,您可能需要运行 ejabberd_sm:dirty_get_sessions_list/0 并在每个三元组上调用 get_user_ip/3 以实现反向查找。
Depending on the size of your installation, you might want to run ejabberd_sm:dirty_get_sessions_list/0 and call get_user_ip/3 on each triple to implement a reverse lookup.
您可以使用 handle_call 或 handle_info 调用中的 From 参数来获取用户、服务器、资源信息。然后调用:
You can use From argument from handle_call or handle_info calls to get User, Server, Resource information. Then call: