Python3 dict包含部分字符串



下面的函数是一个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!

最新更新