independently scan your node, network, nards? ....

... or something like that. indysyn is a super lightweight port scanner written in C. Originally the program was an independent effort to debug the ipv4 scan code in netstr software (which is just a wee bit more complicated), however, it ended up being a cool little utility in of itself. If/when I add features to it I intend on keeping a basic version around for other people to use as a baseline for their own code or to integrate into whatever. There is no license it is public domain; take it, integrate it, build on it, delete it - it is all fine by me.

Download indysyn version 0.01 github repository


indysyn [options][arguments]
indysyn [-h|--host addr|host]   [-p|--port N]
indysyn [-s|--short] [-u|--usage]

Note that it uses a preset portlist which is defined in the header file. If one wishes to change the port just edit this in indysyn.h:

static int portlist [] = { 22, 80, 445, 25, 37, 53, 111, 113, 139, 21, 42, 67,
                           109, 110, 115, 137, 138, 161, 389, 443, 873, 0 };

WARNING: the last element must be a zero, the portlist iteration uses the 0 as the base case to stop scanning. Changing this can be bad. Very bad (or fun depending on your personaility type).


The usual recipe .. but I've only built it on Linux:

tar xzvf indysyn-version.*
cd indysyn-version

The install directive assumes /usr/local/bin for the binary executable and /usr/local/share/man/man1 for the manual page tweak to where you want it. No I am not ever going to use pkgconfig for it.


Hitting up with the defaults:

time indysyn -h 
22 (ssh) open
80 (http) open

real    0m5.694s
user    0m0.004s
sys     0m0.004s

Or doing a single port:

time indysyn -h -p 22
22 is open

real    0m0.107s
user    0m0.004s
sys     0m0.000s

Lastly using the --isup option which will exit after the first successful port connect:

time indysyn -i -h
22 (ssh) open

real    0m0.105s
user    0m0.000s
sys     0m0.004s

BUGS & Features

No idea I am sure there are plenty of bugs I haven't found because basically once I got it to work decently I immediately gutted netstrs scan code and stopped what I was doing. Feature wise I don't have anything planned yet but I am sure I will at some point or someone will point out how I did something terribly wrong.