Lanister – Sencillo escáner de puertos en Lua

Esto es un código que he realizado esta mañana ya que tenía que comprobar en la red local una serie de puertos de un determinado host. En vez de usar nmap pues puedes crearte tu propio y sencillo escáner de puertos en Lua y de algún modo obtener el mismo resultado.

Desde luego que nmap es toda una suite, no quería comparar esta mierda con nmap. Pero simplemente comentar que servirá para nuestro propósito y que muchas veces no necesitamos un procesador de textos como el de Libreoffice si lo que queremos es escribir hola mundo en un archivo de texto plano.

Esto es un poco así, no necesitas un programa con miles de funciones cuando puedes solo usar uno que hace una.

--
-- #        ##   #    # #  ####  ##### ###### #####
-- #       #  #  ##   # # #        #   #      #    #
-- #      #    # # #  # #  ####    #   #####  #    #
-- #      ###### #  # # #      #   #   #      #####
-- #      #    # #   ## # #    #   #   #      #   #
-- ###### #    # #    # #  ####    #   ###### #    #
--
-- LANister es un sencillo programa en Lua que permite comprobar si un puerto
-- de una determinada IP dada está abierto o cerrado.
-- fanta: fanta@56k.es
-- Dependencias: lua-socket-dev lua5.1
--

local socket = require "socket"

local function scan(host,port)
      local sock = socket.tcp()
      local s = sock:connect(host, port)
      sock:close()

      if s then
           print("Port " .. port .. " in " .. host .. " is open")
      else
           print("Port " .. port .. " in " .. host .. " is closed")
      end
end

local function main()
      if #arg ~= 2 then
	   print "lanister [host] [port]"
      else
	   scan(arg[1],arg[2])
      end	   
end

main()

Saludos cordiales.

Deja un comentario