Я пытаюсь отфильтровать IP-адрес своего локального компьютера 192.168.5.22
.
я использовал ip.src != 192.168.5.22|| ip.dst !=192.168.5.22
и я все время вижу всплывающее окно с моим адресом.
Митч прав. При отрицательном совпадении, как у вас, вам нужно, чтобы оба условия были верны, чтобы отфильтровать ваш IP, таким образом и вместо того или. Вы также можете написать это так:
not (ip.addr == 192.168.5.22)
Может показаться более логичным записать это как ip.addr != 192.168.5.22
, но хотя это допустимое выражение, оно будет соответствовать Другой конец соединения не является конкретным IP-адресом и все еще остается правдой. Например, при подключении к 192.168.5.254 из 192.168.5.22, ip.addr != 192.168.5.22
не соответствует * .22 IP, он соответствует * .254 и, следовательно, пакет соответствует выражению фильтра. Вот полный пример фильтрации http:
not ip.addr == 192.168.5.22 and not tcp.dstport == 80
tcp.dstport! = 80 имеет аналогичную проблему; наличие tcp.dstport! = 80 означает "соответствовать ТОЛЬКО трафику tcp, но только tcp, который не является dstport == 80"
Хотя это и не совсем ваш вопрос, я предпочитаю выполнять фильтрацию в фильтре захвата (дважды щелкните имя интерфейса в диалоговом окне параметров захвата), синтаксис которого точно такой же, как у tcpdump. Это заставляет захват занимать меньше памяти и диска, избегая захвата пакетов, которые вы просите игнорировать. Обратной стороной является то, что эти пакеты не захватываются, если вы позже захотите их проверить, и вы не можете изменить выбранный таким образом фильтр во время сеанса захвата. Например, чтобы не перехватывать трафик http и ssh к / от любого хоста и любые пакеты к или от 192.168.5.22,
not host 192.168.5.22 and not port 80 and not port 22
Если вы хотите только фильтровать http-трафик к этому хосту и от него, вы можете сделать это:
not (host 192.168.5.22 and port 80)
Ваш or
должен быть and
ip.src != 1.2.3.4 && ip.dst != 1.2.3.4