Вот сценарий.
У меня есть IP-адрес 1.2.3.4 порт 2000, отправляющий пакеты udp на один неизвестный IP. Я хотел бы найти неизвестный IP-адрес, чтобы заблокировать его с помощью iptables.
Есть ли способ сделать это с помощью скрипта? Сейчас я делаю это вручную, используя
tshark -i eth1 -f "net 1.2.3.4 and src port 2000"
Я не уверен, как передать это в скрипт и автоматически найти IP-адрес назначения.
Просто используйте tshark для вывода только нужного поля, добавив -Tfields -e ip.dst_host в свою командную строку:
tshark -i eth1 -Tfields -e ip.dst_host -f "net 1.2.3.4 and src port 2000"
Чтобы получить только первое вхождение, соберите только небольшое количество пакетов и пропустите голову:
tshark -i eth1 -Tfields -e ip.dst_host -f "net 1.2.3.4 and src port 2000" -c 1000 | head -1
Если вы считаете, что 1000 пакетов недостаточно для передачи одного пакета на этот порт, увеличьте это число.