## PortScanner, (C) 2003 p. Stanley-Marbell# pip@gemusehaken.org#implement PortScanner; include "sys.m";include "draw.m";include "arg.m";include "rfc1700.m"; arg : Arg;sys : Sys; PortScanner : module{ init : fn(nil : ref Draw->Context, args : list of string);}; init(nil : ref Draw->Context, args : list of string){ sys = load Sys Sys->PATH; arg = load Arg Arg->PATH; if (arg == nil) { sys->raise(sys->sprint("Could not load %s : %r", Arg->PATH)); } arg->init(args); # Defaults begin := 1; end := 65535; delay := 10; while((c := arg->opt()) != 0) { case c { 'b' => begin = int arg->arg(); 'e' => end = int arg->arg(); 'd' => delay = int arg->arg(); * => { usage(); exit; } } } if (len (args = arg->argv()) != 1) { usage(); exit; } hostname := hd args; spawn tcpscan(begin, end, delay, hostname); return;} tcpscan(begin, end, delay : int, hostname : string){ ok := -1; addr := ""; for (i := begin; i < end; i++) { addr = "tcp!"+hostname+"!"+(string i); (ok, nil) = sys->dial(addr, nil); if (ok >= 0) { sys->print("TCP:%d\n", i); } sys->sleep(delay); } } usage(){ sys->print("portscanner [-b start port] [-e end port] hostname\n"); return;}
#
# PortScanner, (C) 2003 p. Stanley-Marbell
# pip@gemusehaken.org
#
implement PortScanner;
include "sys.m";
include "draw.m";
include "arg.m";
include "rfc1700.m";
arg : Arg;
sys : Sys;
PortScanner : module
{
init : fn(nil : ref Draw->Context, args : list of string);
};
init(nil : ref Draw->Context, args : list of string)
{
sys = load Sys Sys->PATH;
arg = load Arg Arg->PATH;
if (arg == nil)
{
sys->raise(sys->sprint("Could not load %s : %r", Arg->PATH));
}
arg->init(args);
# Defaults
begin := 1;
end := 65535;
delay := 10;
while((c := arg->opt()) != 0)
{
case c
{
'b' => begin = int arg->arg();
'e' => end = int arg->arg();
'd' => delay = int arg->arg();
* =>
{
usage();
exit;
}
}
}
if (len (args = arg->argv()) != 1)
{
usage();
exit;
}
hostname := hd args;
spawn tcpscan(begin, end, delay, hostname);
return;
}
tcpscan(begin, end, delay : int, hostname : string)
{
ok := -1;
addr := "";
for (i := begin; i < end; i++)
{
addr = "tcp!"+hostname+"!"+(string i);
(ok, nil) = sys->dial(addr, nil);
if (ok >= 0)
{
sys->print("TCP:%d\n", i);
}
sys->sleep(delay);
}
}
usage()
{
sys->print("portscanner [-b start port] [-e end port] hostname\n");
return;
}