Skip to content

ThePraiodanish/TomScan

Repository files navigation

TomScan

A lightweight network scanner with scan-diff colouring, inspired by Angry IP Scanner 2.21.

TomScan IP-Scanner 1.2

TomScan discovers devices on your local network and displays their IP address, ping time, hostname, MAC address and (optionally) open ports. Running a second scan highlights new devices in green and lost devices in red.

Features

  • Auto-detects your local subnet and fills in the IP range
  • Threaded ping sweep for fast scanning
  • ARP table lookup for MAC addresses
  • Hostname resolution via DNS and NetBIOS
  • Optional port scanning with configurable port list
  • Scan-diff colouring: green = new device, red = lost device
  • Filter and search scan results
  • CSV export and import (import a previous scan as baseline for diffing)
  • Dark-themed UI

Requirements

  • Python 3.10+
  • Tkinter (included with the standard Python installer on Windows and macOS; on Linux install the python3-tk package)

There are no third-party dependencies. The project uses only the Python standard library.

Running from source

python main.py

The app auto-detects your local subnet and fills in the IP range. Press Start (or Ctrl+S) to scan.

Building a standalone executable

TomScan uses PyInstaller to produce a single-file executable. A TomScan.spec file is included in the repository.

Install PyInstaller

pip install pyinstaller

Build

pyinstaller TomScan.spec

The executable is written to the dist/ directory:

Platform Output
Windows dist/TomScan.exe
macOS dist/TomScan.app

Platform notes

  • Windows – The scanner runs ping.exe and arp.exe as subprocesses. No administrator privileges are required for a basic scan. A console window is suppressed automatically.
  • macOS / Linux – The scanner uses the system ping and arp commands. On some distributions you may need to run with sudo for ARP lookups to return complete results.

Project structure

main.py        Entry point
app.py         Tkinter UI, scan orchestration, CSV export
scanner.py     Scan engine (threaded ping, ARP, port scan)
network.py     Platform-aware ping, ARP table parsing, NetBIOS & DNS hostname resolution
models.py      Data classes (HostEntry, ScanConfig, DiffStatus)
dialogs.py     Options and port-selection dialogs
constants.py   Default settings and UI column definitions
TomScan.spec   PyInstaller build specification

License

Freeware by Thomas Gulden, 2026

For updates visit github.com/ThePraiodanish/TomScan

About

TomScan IP-Scanner

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages