Я пытаюсь взять IP-адрес, полученный от Scapy, и сравнить его с известным IP-адресом, чтобы запустить другую функцию, когда я пытаюсь сравнить часть кода, возвращающую объект или что-то еще? Я не уверен, что именно это.
Я попытался сравнить выходную строку со строкой, и INT, я напечатал то, что я пытаюсь сравнить, а это не то, что я ожидал,
def arp_ping():
ans, unans = srp(Ether(src = "b8:27:eb:a0:57:ff", dst="ff:ff:ff:ff:ff:ff:ff:ff")/ARP(pdst="172.16.16.0/24"),timeout=2)
print(ans.summary(lambda p: p[1].sprintf("%Ether.src% is at %ARP.psrc%")))
print(ARP.psrc)
if ARP.psrc == "172.16.16.206":
print("blueberry is %Ether.src% at %ARP.psrc%")
выход
68:ef:bd:8c:07:21 is at 172.16.16.1
60:38:e0:06:4e:2b is at 172.16.16.50
d4:81:d7:e6:b5:5a is at 172.16.16.100
d4:81:d7:e6:b5:e0 is at 172.16.16.101
64:51:06:34:b4:a7 is at 172.16.16.103
8c:dc:d4:2b:ee:7f is at 172.16.16.108
b8:27:eb:a0:57:ff is at 172.16.16.202
b8:27:eb:40:a8:08 is at 172.16.16.203
b8:27:eb:32:83:a0 is at 172.16.16.204
b8:27:eb:e7:46:93 is at 172.16.16.206
b8:27:eb:50:c7:c6 is at 172.16.16.207
b8:27:eb:8b:6a:60 is at 172.16.16.208
None
<Field (ARP).psrc>
Я ожидаю
68:ef:bd:8c:07:21 is at 172.16.16.1
60:38:e0:06:4e:2b is at 172.16.16.50
d4:81:d7:e6:b5:5a is at 172.16.16.100
d4:81:d7:e6:b5:e0 is at 172.16.16.101
64:51:06:34:b4:a7 is at 172.16.16.103
8c:dc:d4:2b:ee:7f is at 172.16.16.108
b8:27:eb:a0:57:ff is at 172.16.16.202
b8:27:eb:40:a8:08 is at 172.16.16.203
b8:27:eb:32:83:a0 is at 172.16.16.204
b8:27:eb:e7:46:93 is at 172.16.16.206
b8:27:eb:50:c7:c6 is at 172.16.16.207
b8:27:eb:8b:6a:60 is at 172.16.16.208
None
"blueberry is b8:27:eb:e7:46:93 at 172.16.16.206