From 902575b58312ffa78c812696151f38c75b0f6e4a Mon Sep 17 00:00:00 2001 From: James Smith Date: Sun, 21 Dec 2025 11:01:07 +0000 Subject: [PATCH] Fix regex parsing of airmon-ng monitor interface name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous regex incorrectly captured "for" from airmon-ng output like "monitor mode enabled for [phy0]wlp3s0 on wlp3s0mon". Now uses a more specific pattern that looks for "on mon" first, with fallback to any word ending in "mon". 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- intercept.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/intercept.py b/intercept.py index 9713547..3aa060d 100755 --- a/intercept.py +++ b/intercept.py @@ -4856,9 +4856,13 @@ def toggle_monitor_mode(): # Parse output to find monitor interface name output = result.stdout + result.stderr - # Common patterns: wlan0mon, wlan0, mon0 + # Common patterns: wlan0mon, wlp3s0mon, etc. import re - match = re.search(r'monitor mode.*?enabled.*?(\w+mon|\w+)', output, re.IGNORECASE) + # Look for "on mon" pattern first (most reliable) + match = re.search(r'\bon\s+(\w+mon)\b', output, re.IGNORECASE) + if not match: + # Fallback: look for interface name ending in 'mon' + match = re.search(r'\b(\w+mon)\b', output) if match: wifi_monitor_interface = match.group(1) else: