Escriba el programa más corto que intentará conectarse a puertos abiertos en una computadora remota y verifique si están abiertos. (Se llama Port Scanner )
Tomar datos de los argumentos de la línea de comandos.
your-port-scanner host_ip startPort endPort
Supongamos que startPort <endPort (y endPort - startPort < 1000
)
Salida: todos los puertos abiertos entre ese rango deben estar separados por comas o espacios.
Respuestas:
sh / netcat, 39
Netcat realiza el escaneo y devuelve resultados en este formulario en error estándar:
cut
yxargs
extraiga el número de puerto y forme una sola línea.Recordarme que apague SMTP en ese nodo.
fuente
Perl, 92
Perl 5.10 o posterior, ejecuta con
perl -E 'code here'
.Utiliza expresiones regulares para comprimir tanto tiempo
IO::Socket::INET
, entonceseval
; formateo final realizado con interpolación de matriz.Por solicitud, una explicación más detallada. Para ungolf, primero volvamos a espacio:
La línea antes del
eval
reemplaza todas las (dos) ocurrencias de 'I' con 'IO :: Socket :: INET', ese es un truco de golf Perl estándar para reducir el impacto de los identificadores largos inevitables. Al nombrar algunos de los temporales, el código es equivalente a esto:En pocas palabras: lea los argumentos de host y rango de puertos desde la línea de comandos; intenta una conexión con todos ellos en secuencia (
IO::Socket::INET->new()
); mantener una lista de los que tuvieron éxito (grep
); muestra el resultado muy bien (say
).fuente
sh / nmap / GNU grep / xargs - 36
Sigue las especificaciones de entrada y salida:
fuente
nmap
cuenta como una respuesta válida aquí, pero definitivamente no lo essh
:)your-port-scanner host_ip startPort endPort
interfaz, llamando a nmap ;-)nmap
vienen equipados con Linux? : - \ No sabía que ... :(Rubí - 85
fuente
BASH - 105
En BASH puro (es decir, no nmap o netcat).
Cuando se usa con una dirección que no sea localhost, el tiempo de espera es bastante largo (en el orden de minutos) cuando se encuentra con un puerto cerrado, por lo que probablemente se requerirá algún tipo de función de tiempo de espera / alarma.
fuente
PHP - 70
fuente
$p++
otra mención de$p
, ahorrará un char ...Perl, 178
Soy nuevo en Perl, cualquier consejo sobre acortamiento es apreciado.
fuente