48 lines
1.1 KiB
Text
Executable file
48 lines
1.1 KiB
Text
Executable file
#!/usr/bin/env newlisp
|
|
|
|
; - scan - v.1.0 port scanner in newLISP
|
|
; much faster on Mac OSX, LINUX and other UNIX than on Windows
|
|
; as on UNIX net-connect can return on failure before the timeout
|
|
; has exspired. On Windows net-connect will wait out the timeout
|
|
; if it cannot connect.
|
|
;
|
|
; Example:
|
|
;
|
|
|
|
(when (< (sys-info -2) 10204)
|
|
(println "newLISP v.10.2.4 or later required")
|
|
(exit))
|
|
|
|
(set 'host (main-args 2))
|
|
(unless host (println [text]
|
|
- newLISP scan v1.1, a simple portscanner
|
|
|
|
USAGE: scan <host-ip-or-name> [<timeout-msec> [<from-port> [<to-port>]]]
|
|
|
|
EXAMPLES:
|
|
scan localhost 200 1 1024
|
|
scan example.com
|
|
scan 192.168.1.92 300 20
|
|
|
|
Default for <timeout-msec> is 1000 milli seconds
|
|
Defaults for <from-port> and <to-port> are 1 to 1024
|
|
[/text])
|
|
(exit))
|
|
|
|
(set 'timeout (or (int (main-args 3)) 1000))
|
|
(set 'from-port (or (int (main-args 4)) 1))
|
|
(set 'to-port (or (int (main-args 5)) 1024))
|
|
|
|
(println "scanning: " host)
|
|
(for (port from-port to-port)
|
|
(if (set 'socket (net-connect host port timeout))
|
|
(begin
|
|
(println "open port: " port " " (or (net-service port "tcp") ""))
|
|
(net-close socket))
|
|
(print port "\r"))
|
|
)
|
|
(println)
|
|
(exit)
|
|
|
|
;; eof
|
|
|