Skip to content

zrnge/NetMon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NetMon

Python License Security Domain Status

NetMon is a graphical, cross-platform tool built with Python and Tkinter designed to provide real-time visibility into all network connections (IPv4, IPv6, TCP, UDP) established by processes on your local machine.

This project is open-source and created by [zrng].

NetMon

🚀 Features

Real-time Table View: Displays connections including Source IP/Port, Destination IP/Port, Protocol, Process ID (PID), Process Name, Connection Status, and Connection Duration.

PID Tracking: Automatically tracks when a connection enters the ESTABLISHED state to calculate accurate duration.

Theming: Supports Light and Dark modes with system default detection.

Filtering: Use the dropdown to filter by connection Status (e.g., ESTABLISHED, LISTEN, TIME_WAIT).

Query Search: Use a powerful search box to filter by multiple criteria (e.g., pid:1234,process_name:chrome,dst_ip:8.8.8.8).

Baseline Comparison: Save a network baseline and highlight any new, previously unseen connections for security analysis.

Logging: Save dynamic logs of new established connections (network_log.txt) or export a snapshot of the current table data.

Copy Functionality: Right-click any row or column to copy data directly to the clipboard.

⚙️ Installation

Prerequisites

You need Python 3.x installed on your system.

Install Dependencies

NetMon only requires the psutil library (Tkinter is usually included with standard Python installations).

pip install -r requirements.txt

▶️ Running NetMon

IMPORTANT: Due to operating system security restrictions, NetMon must be run with elevated privileges (Administrator/root) to access connection data and associate PIDs with process names for all system-wide connections.

#Operating System

Linux/macOS

sudo python3 netmon_v1.1.py

Windows

1. Open Command Prompt or PowerShell as Administrator. 

2. Navigate to the project directory. 

3. Run: python netmon_v1.1.py

📝 Usage Guide

Search Query Filter

Use the text input field to filter the table based on specific criteria. Separate key-value pairs with commas. The search is case-insensitive and supports partial matches.

Format: key:value,key:value

Key Description Example

pid Process ID

pid:8765

process_name Executable name

process_name:firefox

src_ip Local IP address

src_ip:192.168.1.1

dst_ip Remote IP address

dst_ip:1.1.1.1

src_port Local port number

src_port:54321

dst_port Remote port number

dst_port:443

protocol Protocol type

protocol:udp/ipv6

Baseline Comparison

Use the File menu to manage baselines:

File > Save a Baseline: Saves the current set of established connections to network_baseline.json.

File > Compare to a Baseline: Enables comparison mode. Any connection currently active that was NOT in the saved baseline will be highlighted in the table, indicating potentially new or suspicious activity.

About

NetMon is a graphical, cross-platform tool built with Python and Tkinter designed to provide real-time visibility into all network connections (IPv4, IPv6, TCP, UDP) established by processes on your local machine.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages