Skip to content

Final Project for CIS 298 showcasing scapy and tkinter python libraries through a simple network/ip scanner.

License

Notifications You must be signed in to change notification settings

csandrew-dev/LANyard

Repository files navigation

CIS298-W25-Final-Project

Final Project for CIS 298 (intro to python) showcasing a tkinter and scapy libraries.

Simple IP/Network Scanner

Functions

  • 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

How-to Contribute

  1. git clone Pull down repo

  2. python3 -m venv venv/ create virtual environment for packages to live in

  3. source venv/bin/activate activate virtual env

  4. python -m pip install -r requirements.txt install dependencies

  5. make your changes

  6. write tests for your code (put them in tests/)

  7. python -m pytest run the tests

  8. python -m pip freeze > requirements.txt update dependancies if needed.

Project Structure

.
├── 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/

Git Log

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

About

Final Project for CIS 298 showcasing scapy and tkinter python libraries through a simple network/ip scanner.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages