Skip to content

Get notified for new devices on your network

License

Notifications You must be signed in to change notification settings

RafhaanShah/Net-Mon

Repository files navigation

Net-Mon

Get notified for new devices on your network. This app runs nmap periodically and saves found hosts, and send you a notification whenever a new device (mac-address) is found.

Prerequisites

  • A notification service supported by Apprise and the required API keys or other configuration for your chosen services
  • Have Python 3.8+ or Docker installed

Installation

This app can be used stand-alone and run with Python, or it is also available as a Docker image. If using Python, install the requirements first: pip install -r requirements.txt

Configuration

All configuration is done via environment variables:

  1. Apprise configuration url, for your chosen providers: NETMON_NOTIFICATION=tgram://bottoken/ChatID
  2. Subnet for scanning in CIDR form or range form: NETMON_SUBNET=192.168.1.0/24 or NETMON_SUBNET=192.168.1.1-100
  3. Interval for scanning, in minutes: NETMON_MINUTES=15

Usage

  • Stand-alone: sudo python app.py
  • Docker:
     docker run -e \
         NETMON_NOTIFICATION=tgram://bottoken/ChatID \
         NETMON_SUBNET=192.168.1.0/24 \
         NETMON_MINUTES=15 \
         --net=host \
         ghcr.io/rafhaanshah/net-mon:latest
    
  • Docker-Compose:
    version: "3.8"
    
    services:
        net-mon:
            container_name: net-mon
            image: ghcr.io/rafhaanshah/net-mon:latest
            restart: unless-stopped
            network_mode: host # needed for nmap to get mac addresses
            volumes:
            - ./results.json:/app/results.json # optional, if you want to keep found hosts persistent
                                               # create an empty results.json first
            environment:
            - NETMON_NOTIFICATION=tgram://bottoken/ChatID
            - NETMON_SUBNET=192.168.1.0/24
            - NETMON_MINUTES=60
    

License

MIT