{"id":17513000,"url":"https://github.com/howie1989/ethersnoop","last_synced_at":"2026-05-01T09:32:50.863Z","repository":{"id":258420665,"uuid":"873886901","full_name":"howie1989/EtherSnoop","owner":"howie1989","description":"EtherSnoop: A portable, real-time network snooping device that captures and displays Cisco Discovery Protocol (CDP) packets, built on the W55RP20-EVB-PICO with a snazzy OLED display!","archived":false,"fork":false,"pushed_at":"2024-10-16T23:10:28.000Z","size":423,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T21:45:25.653Z","etag":null,"topics":["cdp","cisco","micropython","w5500","w55rp20-evb-pico"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/howie1989.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-16T22:23:04.000Z","updated_at":"2024-10-16T23:10:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"9fd08c14-d373-4d7e-8232-e67ee1b2dc75","html_url":"https://github.com/howie1989/EtherSnoop","commit_stats":null,"previous_names":["howie1989/ethersnoop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howie1989%2FEtherSnoop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howie1989%2FEtherSnoop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howie1989%2FEtherSnoop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howie1989%2FEtherSnoop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/howie1989","download_url":"https://codeload.github.com/howie1989/EtherSnoop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246106658,"owners_count":20724400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdp","cisco","micropython","w5500","w55rp20-evb-pico"],"created_at":"2024-10-20T06:06:34.054Z","updated_at":"2026-05-01T09:32:50.821Z","avatar_url":"https://github.com/howie1989.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕵️‍♂️ **EtherSnoop** 🔍\n\n![EtherSnoop Logo](https://dummyimage.com/600x200/000/fff\u0026text=EtherSnoop)\n\nWelcome to **EtherSnoop** – the only detective you'll ever need to monitor where your office ports are connected like a hawk (or maybe a really tech-savvy owl 🦉). Say goodbye to network mysteries and hello to **real-time Ethernet snooping**!\n\n## 🚀 What is EtherSnoop?\nEtherSnoop is a small but mighty device that captures, parses, and displays Cisco Discovery Protocol (CDP) packets over Ethernet. You know those mysterious network switches? Now, you can see exactly what they're up to!\n\n💡 **Built on the W55RP20-EVB-PICO** (WIZnet Ethernet + Raspberry Pi RP2040-based board), EtherSnoop monitors Ethernet connections in real-time, providing live CDP data like:\n- 📡 **Switch Name** (because who doesn’t want to name-drop their network switch at parties?)\n- 🔌 **Port Number** (Fa0/1, Gi0/2 – you name it, we parse it)\n- 🎛️ **VLAN ID** (Yes, even your VLANs have secrets, and EtherSnoop knows them!)\n- 📜 **IOS Version** (Straight from the switch firmware, like `12.2(55)EX3`)\n\nOh, and did we mention it’s all displayed beautifully on an OLED screen? It’s like having a tiny window into the network world 🌍.\n\n## 😎 Why Use EtherSnoop?\nWhether you’re a network admin, an ethical hacker (🕶️), or just someone who wants to know where things are patched in and get the basic config on that port, **EtherSnoop is your gadget**. Forget expensive packet sniffers – this one’s cute, portable, and packs the perfect amount of nerdiness.\n\nHere’s what EtherSnoop can do:\n- Detect when **Ethernet cables are plugged in or unplugged** (because cables seem to disappear like magic).\n- Dynamically **request an IP via DHCP** and flaunt that IP on its OLED screen like it's the coolest thing ever.\n- **Capture and display CDP data** – see info like \"Office Switch1\" on port \"Fa0/5\" with VLAN ID \"10.\" (You could even put that on a t-shirt.)\n- **Display the Cisco IOS version** to know exactly what software your switch is running.\n- Uses **custom fonts** because, why not? Roboto Light never looked so good on an OLED screen.\n\n## ⚙️ How It Works\n1. **Plug in an Ethernet cable.** EtherSnoop will request an IP via DHCP.\n2. **Sit back, relax**, and let EtherSnoop capture the CDP packets.\n3. **Watch the magic** on the OLED screen as EtherSnoop parses and shows you detailed info about your network switch, port, VLAN, and IOS version. (Remember, Cisco switches by default only send CDP packets every 60 seconds!)\n4. **Unplug the Ethernet cable** to make it sad – just kidding, it'll patiently wait for reconnection, request a new IP, and start snooping again. It never quits. Ever. 😎\n\n## 🛠️ Getting Started\nReady to snoop? Let’s get you up and running in no time!\n\n### Hardware Requirements\n- **W55RP20-EVB-PICO Board** (Ethernet + RP2040 board)\n- **SSD1306 OLED Screen** (128x64 pixels)\n- **An Ethernet cable** (obviously!)\n- **Power source**: Currently USB-powered, but you can go wireless with a battery!\n\n### OLED Pin Connections\nTo hook up your OLED display (SSD1306), connect the following pins:\n- **SDA (I2C Data)** to Pin **2**\n- **SCL (I2C Clock)** to Pin **3**\n- **VCC** to **3.3V** or **5V**\n- **GND** to **Ground**\n\n### Software Requirements\n- **MicroPython** installed on your W55RP20-EVB-PICO.\n- The following libraries:\n  - `ssd1306.py` (OLED library) from [RandomNerdTutorials](https://randomnerdtutorials.com/raspberry-pi-pico-ssd1306-oled-micropython/), though we’ve modded it to work with `fdrawer`.\n  - `fdrawer.py` for drawing fonts from the awesome [freetype-generator](https://github.com/mchobby/freetype-generator).\n  - **Custom font files**: `robotl_m10.py` and its corresponding `.bin` file (Roboto Light, medium size).\n\n### Installation\n1. **Clone this repo** (you know the drill):\n   ```bash\n   git clone https://github.com/YourGitHub/EtherSnoop.git\n   cd EtherSnoop\n   ```\n\n2. **Flash MicroPython** onto your W55RP20-EVB-PICO:\n   Use the `firmware.uf2` provided in the `firmware` folder. This is a special adaptation of the **WIZnet-ioNIC-micropython** firmware, with some tweaks for our needs (because, frankly, they left out some essential features). Flash it like you mean it!\n\n3. **Upload all the files**:\n   Copy everything from root (via Thonny, rshell, or whatever you like). Your device is now ready to snoop!\n\n4. **Plug in your Ethernet cable**, connect power, and watch EtherSnoop do its thing! ⚡\n\n### 🧰 Folder Structure\n```\nEtherSnoop/\n│\n├── main.py           # The brains of the operation\n├── ssd1306.py        # Manages the OLED display (modded for FontDrawer)\n├── fdrawer.py        # Custom font drawer library\n├── robotl_m10.py     # Larger font for OLED\n├── robotl_m10.bin    # Binary data for larger font\n└── firmware/         # Contains the custom MicroPython firmware\n    └── firmware.uf2\n```\n\n## 🏆 Features\n- **Real-time CDP Packet Parsing**: Get live details about the switch, port, VLAN, and **IOS version** – directly from your network traffic.\n- **Cable Detection**: Instantly detects cable disconnection and reconnection like a pro.\n- **IP Address via DHCP**: Watch your device request and show off its IP address every time it reconnects.\n- **OLED Display**: Small but mighty, with custom fonts for that extra bit of flair.\n\n## 🚀 Future Plans\n- 🔋 **Battery Integration**: Soon, EtherSnoop will be untethered and completely portable!\n- 📦 **Case Design**: It’s time to give this gadget a proper home – a 3D-printed case is coming.\n\n## 🐛 Bugs \u0026 Issues\nGot bugs? We hope not, but if you do (or you’re bored and want to chat), head over to the [issues section](https://github.com/YourGitHub/EtherSnoop/issues) and let us know. EtherSnoop doesn’t like being bugged. 😉\n\n## 💡 Contributing\nWe love contributions like a network loves packets! Feel free to submit pull requests, open issues, or even just star the repo – EtherSnoop will thank you. 🎉\n\n## ⚠️ Disclaimer\n**EtherSnoop is not responsible for any network drama it uncovers. Use it ethically, and remember – with great power comes great responsibility.** 🕸️\n\n---\n\nThanks for checking out EtherSnoop! We hope it makes your network monitoring fun, informative, and maybe just a little bit sassy. 😎\n\nHappy Snoopin’! 🕵️‍♂️🎉\n\nP.S. – Shoutout to ChatGPT for helping write most of this README, because, let’s face it, I'm more into coding than writing whimsical README files!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowie1989%2Fethersnoop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhowie1989%2Fethersnoop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowie1989%2Fethersnoop/lists"}