As a follow up to the network perimeter test I have expanded the code a bit. It now shows also the interface names to help explain what's what, and it also tries to match the gateway to the ip addresses found. The strategy, however, has changed somewhat. At first the goal was to find all the networks and proceed from there. I decided this was not really the best approach, given that a misconfigured network connection could possibly contain, say, a gateway not on any network. It therefore seems more sensible to display the information read from route
and ifconfig
as is than try to infer too much from it.
Here for instance the loopback ip is on a network that is not known, but still a working ip nonetheless.
The probing strategy also includes nmap
(if available) probes to have some redundancy in the process (say for instance outbound icmp is blocked by the firewall). And the code has been made more portable, so on platforms other than linux (where linux networking tools aren't present) there is a graceful degradation of features.
Naturally, much networking happens over wireless these days, so there's also a wifi
command that displays the status of all the wireless interfaces. This is again nothing more than is revealed by iwconfig
, but in a considerably more human readable form I would argue.
Then there is wifiscan
, which not surprisingly scans for access points. The output is a considerably more space efficient and usable counterpart to what iwlist
prints.
One thing to keep in mind about these detection commands is that many of the system tools being used offer less (or none) information to unprivileged users, so running these commands as root may produce fuller output.
Nice job. Looks like a good program.