From dec0f96537375a5c47629e5eab83963655d68c6e Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Sat, 26 Aug 2023 20:47:43 +0800 Subject: [PATCH] =?UTF-8?q?ft:=20utRocket=20=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/httpSocket/utSocket.erl | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/httpSocket/utSocket.erl b/src/httpSocket/utSocket.erl index 39fdaa7..e6865d3 100644 --- a/src/httpSocket/utSocket.erl +++ b/src/httpSocket/utSocket.erl @@ -5,33 +5,37 @@ , socketToIpTuple/1 , socket2port/1 , str2ip/1 + , ipToStr/1 ]). %% socket转IP socketToIpStr(Socket) -> - case inet:peername(Socket) of - {ok, {{A, B, C, D}, _}} -> - string:join(lists:map(fun com_type:to_list/1, [A, B, C, D]), "."); - _ -> - "" + try {ok, {TIp, _TPort}} = inet:peername(Socket), ipToStr(TIp) + catch _:_ -> + try {ok, {SIp, _SPort}} = ssl:peername(Socket), ipToStr(SIp) + catch _:_ -> + "0.0.0.0" + end end. +ipToStr({A, B, C, D}) -> + <<_:8, IpStr>> = <<<<".", (integer_to_binary(O))/binary>> || O <- [A, B, C, D]>>, + IpStr; +ipToStr(Ip) -> + <<_:8, IpStr>> = <<<<":", (integer_to_binary(O, 16))/binary>> || O <- tuple_to_list(Ip)>>, + IpStr. + %% 获取ip socketToIpTuple(Socket) -> - case catch inet:peername(Socket) of - {ok, {Ip, _Port}} -> - Ip; - _ -> - case catch ssl:peername(Socket) of - {ok, {Ip, _Port}} -> - Ip; - _ -> - {0, 0, 0, 0} - end + try {ok, {TIp, _TPort}} = inet:peername(Socket), TIp + catch _:_ -> + try {ok, {SIp, _SPort}} = ssl:peername(Socket), SIp + catch _:_ -> + {0, 0, 0, 0} + end end. - socket2port(Socket) -> case inet:peername(Socket) of {ok, {_, Port}} -> Port;