lib/ronin/network/extensions/udp/net.rb in ronin-support-0.3.0 vs lib/ronin/network/extensions/udp/net.rb in ronin-support-0.4.0.rc1
- old
+ new
@@ -15,222 +15,10 @@
#
# You should have received a copy of the GNU Lesser General Public License
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
#
-require 'socket'
+require 'ronin/network/udp'
module Net
- #
- # Creates a new UDPSocket object connected to a given host and port.
- #
- # @param [String] host
- # The host to connect to.
- #
- # @param [Integer] port
- # The port to connect to.
- #
- # @param [String] local_host (nil)
- # The local host to bind to.
- #
- # @param [Integer] local_port (nil)
- # The local port to bind to.
- #
- # @yield [socket]
- # If a block is given, it will be passed the newly created socket.
- #
- # @yieldparam [UDPsocket] socket
- # The newly created UDPSocket object.
- #
- # @return [UDPSocket]
- # The newly created UDPSocket object.
- #
- # @example
- # Net.udp_connect('www.hackety.org',80)
- # # => UDPSocket
- #
- # @example
- # Net.udp_connect('www.wired.com',80) do |sock|
- # puts sock.readlines
- # end
- #
- # @api public
- #
- def Net.udp_connect(host,port,local_host=nil,local_port=nil)
- host = host.to_s
- local_host = if local_host
- local_host.to_s
- end
-
- sock = UDPSocket.new(host,port,local_host,local_port)
-
- yield sock if block_given?
- return sock
- end
-
- #
- # Creates a new UDPSocket object, connected to a given host and port.
- # The given data will then be written to the newly created UDPSocket.
- #
- # @param [String] data
- # The data to send through the connection.
- #
- # @param [String] host
- # The host to connect to.
- #
- # @param [Integer] port
- # The port to connect to.
- #
- # @param [String] local_host (nil)
- # The local host to bind to.
- #
- # @param [Integer] local_port (nil)
- # The local port to bind to.
- #
- # @yield [socket]
- # If a block is given, it will be passed the newly created socket.
- #
- # @yieldparam [UDPsocket] socket
- # The newly created UDPSocket object.
- #
- # @return [UDPSocket]
- # The newly created UDPSocket object.
- #
- # @api public
- #
- def Net.udp_connect_and_send(data,host,port,local_host=nil,local_port=nil)
- sock = Net.udp_connect(host,port,local_host,local_port)
- sock.write(data)
-
- yield sock if block_given?
- return sock
- end
-
- #
- # Creates a new temporary UDPSocket object, connected to the given host
- # and port.
- #
- # @param [String] host
- # The host to connect to.
- #
- # @param [Integer] port
- # The port to connect to.
- #
- # @param [String] local_host (nil)
- # The local host to bind to.
- #
- # @param [Integer] local_port (nil)
- # The local port to bind to.
- #
- # @yield [socket]
- # If a block is given, it will be passed the newly created socket.
- # After the block has returned, the socket will then be closed.
- #
- # @yieldparam [UDPsocket] socket
- # The newly created UDPSocket object.
- #
- # @return [nil]
- #
- # @api public
- #
- def Net.udp_session(host,port,local_host=nil,local_port=nil)
- sock = Net.udp_connect(host,port,local_host,local_port)
-
- yield sock if block_given?
-
- sock.close
- return nil
- end
-
- #
- # Reads the banner from the service running on the given host and port.
- #
- # @param [String] host
- # The host to connect to.
- #
- # @param [Integer] port
- # The port to connect to.
- #
- # @param [String] local_host (nil)
- # The local host to bind to.
- #
- # @param [Integer] local_port (nil)
- # The local port to bind to.
- #
- # @yield [banner]
- # If a block is given, it will be passed the grabbed banner.
- #
- # @yieldparam [String] banner
- # The grabbed banner.
- #
- # @return [String]
- # The grabbed banner.
- #
- # @api public
- #
- def Net.udp_banner(host,port,local_host=nil,local_port=nil)
- banner = nil
-
- Net.udp_session(host,port,local_host,local_port) do |sock|
- banner = sock.readline
- end
-
- yield banner if block_given?
- return banner
- end
-
- #
- # Creates a new UDPServer listening on a given host and port.
- #
- # @param [Integer] port
- # The local port to listen on.
- #
- # @param [String] host ('0.0.0.0')
- # The host to bind to.
- #
- # @return [UDPServer]
- # The new UDP server.
- #
- # @example
- # Net.udp_server(1337)
- #
- # @api public
- #
- def Net.udp_server(port,host='0.0.0.0')
- host = host.to_s
- server = UDPServer.new(host,port)
-
- yield server if block_given?
- return server
- end
-
- #
- # Creates a new temporary UDPServer listening on a given host and port.
- #
- # @param [Integer] port
- # The local port to bind to.
- #
- # @param [String] host ('0.0.0.0')
- # The host to bind to.
- #
- # @yield [server]
- # The block which will be called after the server has been created.
- # After the block has finished, the server will be closed.
- #
- # @yieldparam [UDPServer] server
- # The newly created UDP server.
- #
- # @return [nil]
- #
- # @example
- # Net.udp_server_session(1337) do |server|
- # data, sender = server.recvfrom(1024)
- # end
- #
- # @api public
- #
- def Net.udp_server_session(port,host='0.0.0.0',&block)
- server = Net.udp_server(port,host,&block)
- server.close()
- return nil
- end
+ extend Ronin::Network::UDP
end