IP, который Вы передаете как аргумент tuxcut, отправляется пакет, говоря ему, что MAC-адрес его шлюза является Вашим MAC-адресом. Следовательно, тот IP отправляет все пакеты Вам и если Вы не передаете его фактическому шлюзу, они тихо отбрасываются.
Например, Если существует два ПК в подсети, IP-адреса которой IP_A
и IP_B
и их MAC-адреса MAC_A
и MAC_B
.
Предположим что ПК с IP IP_A
попытки сократить сеть ПК с IP IP_B
.
Как Вы знаете, каждый ПК прежде, чем отправить пакет просит MAC-адрес шлюза, если это не доступно в своем кэше. Таким образом, когда ПК с IP IP_B
отправляет Запрос ARP на MAC-адрес его шлюза, он делает это широковещательной передачей уровня MAC: целевой MAC является FF:FF:FF:FF:FF:FF.
IP_A
ПК отвечает на это с ответом ARP, который одноадресно передается, как отправляет его MAC (MAC_A
) как MAC-адрес шлюза. Так IP_B
отправляет все пакеты в IP_A
который не передает пакет к фактическому шлюзу.
P.S.: можно проверить это при помощи Wireshark при использовании Tuxcut.
$ echo 192.168.1. | xargs -I{} grep {} *.txt
Файлы примера:
$ cat {1..3}.txt
192.168.1
192.168.1
192.168.1
Пример выполняется:
$ echo 192.168.1. | xargs -I{} grep {} *.txt
1.txt:192.168.1.
2.txt:192.168.1.
3.txt:192.168.1.
Другой подход:
find . -name \*.txt -print0 | xargs -0 grep 192.168.1
Это не переполнит командную строку оболочки слишком большим количеством имён файлов. Чтобы избежать путаницы xargs
/grep
с именами файлов, которые имеют пробелы, опции -print0
и -0
очерчивают каждое найденное имя нулевым, а не LF.