Final Project for CIS 298 (intro to python) showcasing a tkinter and scapy libraries.
- View all network-connected devices showing hostname, IP address, and MAC address
- Assign custom names to devices (only inside the app, not setting hostnames)
- Specify IP range and/or interfaces to be scanned
- Display all scan results through a Tkinter GUI
- Perform ping and port scanning
-
git clonePull down repo -
python3 -m venv venv/create virtual environment for packages to live in -
source venv/bin/activateactivate virtual env -
python -m pip install -r requirements.txtinstall dependencies -
make your changes
-
write tests for your code (put them in tests/)
-
python -m pytestrun the tests -
python -m pip freeze > requirements.txtupdate dependancies if needed.
.
├── LICENSE
├── README.md
├── data/ (will hold json data for app to load between sessions)
├── UI/ (frontend)
├── main.py (app entry)
├── pytest.ini
├── requirements.txt
├── scanner/ (backend)
│ ├── __init__.py
│ └── arp_scanner.py
| └── ping_port_scanner.py
├── tests/
│ ├── test_arp_scanner.py
| ├── test_ping_port_scanner.py
│ └── test_lanyard_utils.py
├── utils/ (helper functions)
│ ├── __init__.py
│ └── lanyard_utils.py
└── venv/
commit ebb0d61fb20d0a3c4e1e6ddb0bab6c575a83ec7c Author: csandrew-dev csandrew@umich.edu Date: Tue Apr 22 00:25:09 2025 -0400
clean UI and ping UI
- cleaned up the port scanning UI and added the pinging functionality from Sadek's commit to the UI (althought may only work on macos, cause emojis)
commit 2821282f22f7966bd021cccb9638921c9c67cf47 Author: Baltej-Nagra Baltejn2003@gmail.com Date: Mon Apr 21 14:56:31 2025 -0400
UI updated to Create two Seperate Views for Port and ARP scanners
- added Port scanner to UI through a sperate view in tkinter
- utilized 2 tree views to show and select items to scan
commit 68ac15be6ba9714bca68fedee50f69f0b42c0a7a Author: sadekaoude saoudedl@umich.edu Date: Mon Apr 21 10:03:46 2025 -0400
Ping Port Scanner
commit b6178539d46dcc6b646d4e9edf717dab0285e146 Merge: 86b014a 5f8cc67 Author: andrew 102703990+csandrew-dev@users.noreply.github.com Date: Thu Apr 17 09:32:07 2025 -0400
Merge pull request #2 from csandrew-dev/multi-interfaces
add multi-interface selection
commit 5f8cc6798459963fe574e5afa640cdba753b9985 Author: csandrew-dev csandrew@umich.edu Date: Wed Apr 16 21:35:35 2025 -0400
add multi-interface selection
- added a feature to select different network interfaces to scan with, not that useful and didn't really follow the scope or involve using scapy all that much but thought that it would be a cool feature.
commit 86b014a04999677315652db10951a49328e21198 Merge: dde34cf 635630b Author: andrew 102703990+csandrew-dev@users.noreply.github.com Date: Wed Apr 16 13:44:10 2025 -0400
Merge pull request #1 from csandrew-dev/custom-names
custom hostnames and persistent storage
commit 635630b6db75c09524c21f34df96242fb9852149 Author: csandrew-dev csandrew@umich.edu Date: Tue Apr 15 18:30:41 2025 -0400
custom hostnames and persistent storage
- created the results.json file to "restore" sessions without a whole database that is beyond the scope of the project.
commit dde34cf0015ebf5b9edcfe9890db1bcee6f9f1f7 Author: Baltej-Nagra Baltejn2003@gmail.com Date: Tue Apr 15 05:42:07 2025 -0400
Adding Basic Tkinter UI
commit 7786a3c21652985eb41a96e66478b09181f030fd Author: csandrew-dev csandrew@umich.edu Date: Wed Apr 9 10:41:14 2025 -0400
ARP scanner and project layout
- Implemented the basic ARP scanner to get the network scanning function that was a main goal for the project. Using scapy, and its documentation ARP scanning is a very common to use scapy for so it was pretty easy to bring that over.
commit 58c40681e81b0b76cbbf4d9f73c820f04b0cd6bc Author: csandrew-dev csandrew@umich.edu Date: Tue Apr 8 10:40:10 2025 -0400
project setup
- setup the project structure, defined how-to-contribute for teammates, setup testing framework (Github Actions)
commit 218e709be2024ab2879c2ddf12e2a0a0be9171c9 Author: andrew 102703990+csandrew-dev@users.noreply.github.com Date: Tue Apr 1 09:50:11 2025 -0400
Initial commit
- Creation of the repository