Module: Rex::Socket::Tcp
- Includes:
- IO::Stream, Rex::Socket
- Defined in:
- lib/rex/socket/tcp.rb
Overview
This class provides methods for interacting with a TCP client connection.
Constant Summary
Constants included from Rex::Socket
MATCH_IPV4, MATCH_IPV4_PRIVATE, MATCH_IPV6
Instance Attribute Summary
Attributes included from Rex::Socket
#context, #ipv, #localhost, #localport, #peerhost, #peerport
Class Method Summary collapse
-
.create(hash = {}) ⇒ Object
Creates the client using the supplied hash.
-
.create_param(param) ⇒ Object
Wrapper around the base socket class’ creation method that automatically sets the parameter’s protocol to TCP.
Instance Method Summary collapse
-
#localinfo ⇒ Object
Returns local information (host + port) in host:port format.
-
#peerinfo ⇒ Object
Returns peer information (host + port) in host:port format.
-
#shutdown(how = ::Socket::SHUT_RDWR) ⇒ Object
Calls shutdown on the TCP connection.
-
#type? ⇒ Boolean
returns socket type.
Methods included from IO::Stream
#<<, #>>, #def_block_size, #def_max_loops, #def_read_loop_timeout, #def_read_timeout, #def_write_timeout, #fd, #get, #get_once, #has_read_data?, #put, #read, #timed_read, #timed_write, #write
Methods included from Rex::Socket
addr_atoc, addr_atoi, addr_atoi_list, addr_aton, addr_ctoa, addr_itoa, addr_iton, addr_ntoa, addr_ntoi, bit2netmask, cidr_crack, compress_address, create_ip, create_tcp, create_tcp_server, create_udp, dotted_ip?, eth_aton, eth_ntoa, #fd, from_sockaddr, getaddress, getaddresses, gethostbyname, #getlocalname, #getpeername, #getsockname, #initsock, ipv6_link_address, ipv6_mac, is_internal?, is_ipv4?, is_ipv6?, net2bitmask, portlist_to_portspec, portspec_crack, portspec_to_portlist, resolv_nbo, resolv_nbo_i, resolv_nbo_i_list, resolv_nbo_list, resolv_to_dotted, source_address, support_ipv6?, tcp_socket_pair, to_sockaddr, udp_socket_pair
Class Method Details
.create(hash = {}) ⇒ Object
Creates the client using the supplied hash.
26 27 28 29 |
# File 'lib/rex/socket/tcp.rb', line 26 def self.create(hash = {}) hash['Proto'] = 'tcp' self.create_param(Rex::Socket::Parameters.from_hash(hash)) end |
.create_param(param) ⇒ Object
Wrapper around the base socket class’ creation method that automatically sets the parameter’s protocol to TCP.
35 36 37 38 |
# File 'lib/rex/socket/tcp.rb', line 35 def self.create_param(param) param.proto = 'tcp' Rex::Socket.create_param(param) end |
Instance Method Details
#localinfo ⇒ Object
Returns local information (host + port) in host:port format.
68 69 70 71 72 |
# File 'lib/rex/socket/tcp.rb', line 68 def localinfo if (pi = getlocalname) return pi[1] + ':' + pi[2].to_s end end |
#peerinfo ⇒ Object
Returns peer information (host + port) in host:port format.
59 60 61 62 63 |
# File 'lib/rex/socket/tcp.rb', line 59 def peerinfo if (pi = getpeername) return pi[1] + ':' + pi[2].to_s end end |
#shutdown(how = ::Socket::SHUT_RDWR) ⇒ Object
Calls shutdown on the TCP connection.
49 50 51 52 53 54 |
# File 'lib/rex/socket/tcp.rb', line 49 def shutdown(how = ::Socket::SHUT_RDWR) begin return (super(how) == 0) rescue ::Exception end end |
#type? ⇒ Boolean
returns socket type
75 76 77 |
# File 'lib/rex/socket/tcp.rb', line 75 def type? return 'tcp' end |