Как получить результат списка scapy IP-адресов из функции sr в переменную - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь сделать ICMP (сканирование хоста работает) в диапазоне IP-адресов с использованием scapy. Но я хочу сохранить список результатов из функции sr (только ответы) в переменной, чтобы я мог использовать его для других целей. Но это не похоже на работу. Я пытался это , но в моем случае это не работает, потому что ожидаемый результат - список IP-адресов, и я хочу сохранить и отобразить позже все из них.

Если я ввожу scapy и набираю вышеприведенные команды, все работает отлично!

ans,_ = sr(IP(dst='192.168.1.1-7')/ICMP(), timeout=10)
ans.summary( lambda s_r: s_r[1].sprintf("{IP: %IP.src% is alive}"))

Результат, который дает мне:

 192.168.1.1 is alive
 192.168.1.3 is alive
 192.168.1.5 is alive
 192.168.1.6 is alive

Это то, что я пробовал (в моем проекте pycharm), но выдает ошибку объект 'tuple' не имеет атрибута 'getlayer'

ips = '192.168.1.1-9'
ans, _ = sr(IP(dst=ips) / ICMP(), timeout=10)
address = ans.getlayer(IP).src
print(address)

1 Ответ

1 голос
/ 27 марта 2020
ans_ips = [a[1].src for a in ans]
...