在TCPServer(Ruby)中,如何从客户端获取IP / MAC?
发布时间:2020-12-16 20:59:20 所属栏目:百科 来源:网络整理
导读:我想在 Ruby中的TCPServer中获取客户端的IP地址.并且(如果可能的话)MAC地址. 例如,Ruby中的时间服务器,请参阅注释. tcpserver = TCPServer.new("",80)if tcpserver puts "Listening" loop do socket = tcpserver.accept if socket Thread.new do puts "Conne
我想在
Ruby中的TCPServer中获取客户端的IP地址.并且(如果可能的话)MAC地址.
例如,Ruby中的时间服务器,请参阅注释. tcpserver = TCPServer.new("",80) if tcpserver puts "Listening" loop do socket = tcpserver.accept if socket Thread.new do puts "Connected from" + # HERE! How can i get the IP Address from the client? socket.write(Time.now.to_s) socket.close end end end end 非常感谢你! 解决方法
Ruby 1.8.7:
>> fam,port,*addr = socket.getpeername.unpack('nnC4') => [4098,80,209,191,122,70] >> addr => [209,70] >> addr.join('.') => "209.191.122.70" Ruby 1.9使它更直接: >> port,ip = Socket.unpack_sockaddr_in(socket.getpeername) => [80,"209.191.122.70"] >> ip => "209.191.122.70" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |