12
12
def is_valid_interface (interface ):
13
13
"""Check if the interface name is valid based on known naming conventions."""
14
14
valid_prefixes = [
15
- 'eth' , 'wlan' , 'ens' , # Traditional Linux and newer Linux naming
15
+ 'eth' , 'wlan' , 'ens' , 'wlp' , 'wlx' , # Traditional Linux and newer Linux naming
16
16
'em' , 're' , 'ath' , 'wi' , # BSD systems
17
17
'en' , 'lo' , # macOS and loopback
18
- 'e1000g' , 'bge' # Solaris
18
+ 'e1000g' , 'bge' , # Solaris
19
+ 'veth' , 'br' , 'docker' , # Virtual and Docker interfaces
19
20
]
20
21
21
22
# Match common patterns for interface names
22
23
valid_patterns = [
23
24
r'^eth\d+$' , # eth0, eth1, etc.
24
25
r'^wlan\d+$' , # wlan0, wlan1, etc.
25
26
r'^ens\d+$' , # ens33, ens160, etc.
27
+ r'^wlp\d+s\d+$' , # wlp2s0, etc.
28
+ r'^wlx[a-fA-F0-9]{12}$' , # wlx0024e8b6d3a, etc.
26
29
r'^em\d+$' , # em0, em1, etc.
27
30
r'^re\d+$' , # re0, re1, etc.
28
31
r'^ath\d+$' , # ath0, ath1, etc.
@@ -31,6 +34,9 @@ def is_valid_interface(interface):
31
34
r'^bge\d+$' , # bge0, bge1, etc.
32
35
r'^en\d+$' , # en0, en1, etc. (macOS)
33
36
r'^lo$' , # loopback
37
+ r'^veth\d+$' , # veth0, veth1, etc.
38
+ r'^br-\w+$' , # br-<id> for bridge interfaces
39
+ r'^docker0$' , # Docker bridge
34
40
]
35
41
36
42
# Check if the interface name matches any of the valid patterns
0 commit comments