PortScan is a light-weight command line utility that allows user to conduct scanning over a range of IP addresses and port ranges with multi-threading.
pip install portscan
pip install portscan --upgrade
portscan [192.168.1.0/24] [-p 22,80-200 [-t 100 [-w 1 [-e]]]]
New in version 0.2.1:
By default the command checks for your Local Area Network IP first, and then initiate a block wise search. specify IP if you want to search any other IP blocks. Note: This is not available before 0.2.1, please update or specify IP if you're using 0.2.0 and older
-w [float] to change timeout settings from default of
3 seconds: for LAN, this can be as low as
1 is usually good enough for continental level connection.
To show more potential connection, use
-e, this will show you all ports that are not timed out.
ip: default and optional (since 0.2.1, required before 0.2.1) argument, can parse single IP, list of IP, IP blocks:
192.168.1.0 # single IP 192.168.1.0/24 # A 24 block, from 192.168.1.0 to 192.168.1.255 [192.168.1.0/24,22.214.171.124] # The aforementioned 24 block and 126.96.36.199. "[192.168.1.0/24, 188.8.131.52]" # if you want to use space in the command, wrap in quotes.
--port: port range, default
, as a delimiter without space, support port range (e.g.
--threadnum: thread numbers, default 500, as of now, thread number have a hard cap of 2048. More thread will increase performance on large scale scans.
--show_refused: show connection errors other than timeouts, e.g. connection refused, permission denied with errno number as they happen.
--wait: Wait time for socket to respond. If scanning LAN or relatively fast internet connection, this can be set to
1 or even
0.2 for faster scanning. Default
Jamieson Becker: For coming up with a way to find local IP on stackoverflow, which I used: https://stackoverflow.com/questions/166506/finding-local-ip-addresses-using-pythons-stdlib