2009-11-27 155 views
1

有誰知道是否有直接的方法來映射IP地址登錄到ejabberd的用戶?我通過修改ejabberd_receiver.erl並從這裏調用inet:peername(Socket)來發現間接方式:Determining IP address and port of an incoming TCP/IP connection in Erlangejabberd ip地址

但是,在成功驗證身份後,似乎沒有辦法將套接字鏈接到用戶。如果有人知道某種方式,請告訴我!謝謝。

+0

您可能會在服務器故障上獲得更好的幫助。 – 2010-01-03 18:21:21

回答

1

根據安裝的大小,您可能需要運行ejabberd_sm:dirty_get_sessions_list/0並在每個三元組上調用get_user_ip/3以實現反向查找。

0

你可以從參數中使用從handle_callhandle_info調用來獲得用戶,服務器資源信息。然後撥打電話:

Info = ejabberd_sm:get_user_info(User, Server, Resource), 
{ip, {Ip, Port}} = lists:keyfind(ip, 1, Info).