This project allows you to visualize devices connected to the local network through an ARP scan. It uses Flask for the backend and an interactive visualization with D3.js for the frontend.
- Detects the IP and MAC address of the network gateway (router).
- Scans the local network to identify connected devices.
- Displays connected devices in an interactive visualization.
- Supports light and dark mode.
A live demo (fully functional but simulated) is available at: WifiDeviceMapper Demo
Before running the project, make sure you have the following installed:
- Python 3
- pip
- Scapy (for ARP scanning)
- Flask
- netifaces
- Npcap (required for packet capturing on Windows)
Before proceeding with the installation, clone the repository using:
git clone https://github.com/dddevid/WifiDeviceMapper.git
cd WifiDeviceMapper
- Install Python: If you don’t have Python installed, download it from python.org and make sure to add it to the PATH.
- Install Npcap: Download and install Npcap.
- Open the terminal (cmd or PowerShell) and navigate to the project folder:
cd path/to/folder
- Install dependencies by running:
pip install flask scapy netifaces
- Start the application:
python app.py
- Access the web interface by opening your browser and going to:
http://127.0.0.1:5000/
- Install Homebrew (if not already installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install Python and dependencies:
brew install python3 pip3 install flask scapy netifaces
- Start the application:
python3 app.py
- Access the web interface:
http://127.0.0.1:5000/
- Update package lists and install dependencies:
sudo apt update && sudo apt install python3 python3-pip pip3 install flask scapy netifaces
- Start the application:
python3 app.py
- Access the web interface:
http://127.0.0.1:5000/
- Update package lists and install dependencies:
sudo pacman -Syu python python-pip pip install flask scapy netifaces
- Start the application:
python app.py
- Access the web interface:
http://127.0.0.1:5000/
- The Python backend uses Flask to serve an HTML page and provide JSON data with information about connected devices.
- The
scan_devices()
function performs an ARP scan to detect devices on the local network. - The frontend uses D3.js to visually represent connected devices and the gateway.
- To perform an ARP scan, the program must be run with administrator privileges.
- The scan may take a few seconds to gather all the data.
- If Scapy is not installed, an error message will be displayed.
If you find this project useful and want to support my work, you can buy me a coffee at: buymeacoffee.com/devidd
Project developed by Devid.