netvision

The IPv4 space is composed aproximately by 256 * 256 * 256 * 256 addresses, some of them are private or reserved.

IPv4 addresses will be replaced gradually with IPv6 addresses.
IPv6 was introduced in 2004 on Root nameservers
but only in 2008 ICANN started to use it. In 2011 the IANA assigned
the last IPv4 blocks and the protocol will be used until 2025.

Scanning the whole IPv4 space is not that easy, but IPv6 will be huge and
out of the scope of this project. Furthermore, the shape of IPv4 is more
attractive in my opinion, it is easier to explain and with some effort
could be printed.

Of course the perl interpreter should finish its job in no more than 5 minutes (> 255 sec.).
Execution time is faster when all hosts respond to ping. For instance, pinging
172.217.1.* takes 10 seconds.

Class B

It generates file data/1/1.2.json and upload it to S3 bucket s3://ip-v4.space.
If the file already exists locally or on S3, it will exit.
This behaviour can be controlled with the OVERWRITE environment variable.

export OVERWRITE=1
./generate_classB_JSON.pl 1.2

To scan a class B subnet faster, you can launch processes in parallel

source scan.sh
scanB 1 2

Class A

Ping a whole IPv4 class A subnet, for instance 16.*

./generate_classA_JSON 16

The Internet

In order to scan the whole IPv4 space with cheap resources in aproximately 45 days
I distributed the job on 4 server workers, each has its own workerN.sh
batch script.

For instance, connect to first worker via ssh. Then open a screen session
and launch first worker script.