Automatically monitoring your home network

Customer Is King

If a script now wants to query the data from the last Nmap scan, it just picks them up with a normal web client. Listing  3 connects to port 9090 on the local host, picks up the JSON data, and converts it into a Perl structure with the help of the CPAN JSON module and its from_json() method. Then, it iterates over the included hash and array entries found there.

A brief analysis of the JSON data indicates that the hosts found by Nmap are listed under a hash entry with a host key and that their IPv4 addresses each reside under the address node in an entry named addr. Listing 3 iterates over all the items found and outputs the results:

$ ./nmap-client

Listing 3



In other words, the scan found a total of three devices: two on the first subnet and one on the second.

Watched by Nagios

To integrate the whole enchilada into a monitoring tool like Nagios, which raises an alarm if it detects more than the expected number of nodes on the network, I now need the script in Listing  4.

It uses the CPAN Nagios::ClientStatus module, which abstracts frequently repeated tasks in Nagios scripts, such as accepting parameters or exiting the script with one of Nagios' predefined return codes. The nagios-check-nmap script (Listing 4) expects two parameters that specify the minimum and maximum number of hosts expected to be found during the Nmap scans: --min-hosts and --max-hosts. If the scan drops below or exceeds the set values, the script uses exitvalue("critical") to indicate a problem, and Nagios raises the alarm.

Listing 4



To add the Nagios script in Listing 4 to your Nagios configuration, you need the lines shown in Listing 5. After restarting, the Nagios daemon grabs the new configuration and calls the Nagios script at set intervals. After starting the nmap-server daemon, the script can obtain the scan data from the daemon and then reports that everything is okay, or that a new host has entered the network.

Listing 5



This could be a newly purchased device or an intruder. Nagios notifies the user, who then needs to check what is going on and possibly increment the value set for --max-hosts in the configuration if the new device is legitimate.


  1. Nmap used in the movie The Matrix:
  2. Marsh, Nicholas, Nmap Cookbook: The Fat-free Guide to Network Scanning (Kindle Edition):
  3. Listings for this article:

The Author

Mike Schilli works as a software engineer with Yahoo! in Sunnyvale, California. He can be contacted at Mike's homepage can be found at

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Scanning with Zenmap

    Discover your network with the user-friendly Zenmap network scanner.

  • Nmap Scripting

    Nmap is rolling out a new scripting engine to automatically investigate vulnerabilities that turn up in a security scan. We’ll show you how to protect your network with Nmap and NSE.

  • Nmap Workshop

    In "The Matrix Reloaded," Trinity uses Nmap to hack into the power grid to pave Neo's way to the architect of the virtual world. However, the port scanner is also ideal for more mundane purposes – such as discovering vulnerabilities in your domestic network.

  • Nmap Methods

    How does the popular Nmap scanner identify holes in network security? In this article, we examine some Nmap analysis techniques.

  • Charly's Column

    Many tools keep growing with each new version, but Nmap 4.00 has lost weight thanks to the Diet-Nmap project. The latest incarnation of Nmap is not only quicker, it is also more frugal with memory.

comments powered by Disqus