【发布时间】:2019-07-14 17:49:42
【问题描述】:
我正在尝试创建一个项目来扫描我的网络中的 MAC 地址,并允许它们或禁止它们进入我的本地网络。我编写这个脚本是为了熟悉 re 和 pynetgear 模块来完成这个,因为我打算使用这些地址来存储数据以确定哪个设备是哪个。我尝试过的一切都不起作用,或者我尝试在此处和其他资源上查找问题,但到目前为止没有人帮助我。
我试过查看正则表达式的文档,但无法弄清楚这个问题是什么。一直到Devices 的第一个代码工作它只是调用TypeError 的MAC。
from pynetgear import Netgear
import re
netgear = Netgear(password='password')
devices = netgear.get_attached_devices()
MAC = re.search(r"mac=..:..:..:..:..:..", devices)
print(MAC.group(0))
Traceback (most recent call last):
File "/home/z33k/Desktop/python/adhdResearch.py", line 8, in <module>
MAC = re.search(r"mac=..:..:..:..:..:..", devices)
File "/usr/lib/python2.7/re.py", line 146, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or buffer
【问题讨论】:
-
devices是什么 Python 类型? -
devices 是存储netgear结果的变量。获取附加设备。需要转成字符串吗?
-
首先我会检查返回的
devices。也许您寻找的数据已经是您可以使用的形式。 -
是的,它需要是一个字符串。但是,您还没有说它的类型是什么。你可以
print(type(devices))看到这个