下面的函数是一个IP扫描器,它返回IP地址和MAC地址的列表。我正试图找出如何只过滤出包含特定供应商的MAC地址。
例如,我试图过滤列表,只捕获包含"AA:BB:CC"的IP/MAC。
有人能给我指正确的方向吗?
def scan(ip):
arp_packet = scapy.ARP(pdst=ip)
broadcast_packet = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
arp_broadcast_packet = broadcast_packet/arp_packet
answered_list = scapy.srp(arp_broadcast_packet, timeout=1, verbose=False)[0]
client_list = []
for element in answered_list:
client_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc}
client_list.append(client_dict)
return client_list
如果要检查字符串是否包含模式,请使用find()
:
pattern = 'AA:BB:CC'
if mac.find( pattern ) != -1 :
pass # found!
如果你想检查字符串的开头是否有模式:
pattern = 'AA:BB:CC'
if mac.startswith( pattern ) :
pass # found!