Sha256: fa1da897f1d45d3fb6cddbf699bd8e7390ef8f4ad47caeda641b0013647436b8
Contents?: true
Size: 1.1 KB
Versions: 6
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true require_relative "gets_peer_address" module Ftpd module GetsPeerAddress # Obtain the IP that the client connected _from_. # # How this is done depends upon which type of socket (SSL or not) # and what version of Ruby. # # * SSL socket # * #peeraddr. Uses BasicSocket.do_not_reverse_lookup. # * Ruby 1.8.7 # * #peeraddr, which does not take the "reverse lookup" # argument, relying instead using # BasicSocket.do_not_reverse_lookup. # * #getpeername, which does not do a reverse lookup. It is a # little uglier than #peeraddr. # * Ruby >=1.9.3 # * #peeraddr, which takes the "reverse lookup" argument. # * #getpeername - same as 1.8.7 # # @return [String] IP address def peer_ip(socket) if socket.respond_to?(:getpeername) # Non SSL sockaddr = socket.getpeername port, host = Socket.unpack_sockaddr_in(sockaddr) host else # SSL BasicSocket.do_not_reverse_lookup = true socket.peeraddr.last end end end end
Version data entries
6 entries across 6 versions & 1 rubygems