草庐IT

Wireshark 实用篇2:Wireshark 抓包常用过滤命令

Data-Mining 2023-06-03 原文

目录

前言 

正文

一、根据 IP 地址过滤

二、根据端口过滤

三、根据协议过滤

四、根据 Payload Type 条件过滤

五、根据组合条件过滤

六、实例分析


前言 

使用 Wireshark 工具进行网络抓包属于研发人员的基础技能,如果你还不了解,建议从现在开始学习和掌握一些基础的使用方法。今天就来先了解一下 Wireshark 常用的抓包过滤命令。

正文

正式开始之前,考虑到不同版本的兼容性和差异性问题,本次介绍的 Wireshark 版本是*

一、根据 IP 地址过滤

case 1、筛选出源 IP 或者目的 IP 地址是 192.168.3.77 的全部数据包

过滤命令:

ip.addr == 192.168.3.77

case 2、筛选出源 IP 地址是 182.254.3.77 的数据包

过滤命令:

ip.src_host == 192.168.1.114               

case 3、筛选出目的地址是192.168.1.114的数据包

过滤命令:

ip.dst_host == 192.168.1.114 

二、根据端口过滤

case 1、根据 TCP 端口筛选数据包,包括源端口和目的端口

过滤命令:

tcp.port == 80                  

case 2、根据 TCP 目的端口筛选数据包

过滤命令:

tcp.dstport == 80        

case 3、根据 TCP 源端口筛选数据包

过滤命令:

tcp.srcport==80           

case 4、根据 UDP 端口筛选数据包,包括源端口和目的端口

过滤命令:

udp.port == 1234

case 5、根据 UDP 源端口筛选数据包

过滤命令:

udp.srcport == 1234    

case 6、根据 UDP 的目的端口筛选数据包

过滤命令:

udp.dstport == 1234    

三、根据协议过滤

常用的网络协议有 udp、tcp、dns、ip、ssl、http、ftp、arp、icmp、smtp、pop、telnet、ssh、rdp、sip 等。

case 1、筛选出 http 协议中 GET 请求的数据包

过滤命令:

http.request.method == GET

注意:GET 一定要大写!

case 2、筛选出 http 协议中的 POST 请求的数据包

过滤命令:

http.request.method == POST

注意:POST 一定要大写!

四、根据 Payload Type 条件过滤

可以根据网络包的 Payload Type 类型进行条件过滤,比如根据下图中的 111 枚举值过滤。

过滤条件如下:

rtp.p_type == 111 

五、根据组合条件过滤

case 1、筛选出源 IP 地址是 192.168.3.77 且目的 IP 地址是 192.168.3.78 的数据包

过滤命令:

ip.src_host == 192.168.3.77 && ip.dst_host == 192.168.3.78

case 2、筛选出源 IP 地址是 192.168.3.77 或者源 IP 地址是 192.168.3.78 的数据包

过滤命令:

ip.src_host == 192.168.3.77 && ip.src_host == 192.168.3.78

case 3、筛选出不是 IP 地址 192.168.3.77 的数据包

过滤命令:

!(ip.addr == 192.168.3.77)

六、实例分析


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一名典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解。同时也是 CSDN 博客专家(博客之星)、华为云享专家(共创编辑、十佳博主)、51CTO社区编辑、InfoQ 签约作者,欢迎关注我分享更多干货!😄

有关Wireshark 实用篇2:Wireshark 抓包常用过滤命令的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  4. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  5. ruby-on-rails - 在 Controller 中干净地处理多个过滤器(参数) - 2

    我有一个名为Post的类,我需要能够适应以下场景:如果用户选择了一个类别,则只显示该类别的帖子如果用户选择了一种类型,则只显示该类型的帖子如果用户选择了一个类别和类型,则只显示该类别中该类型的帖子如果用户没有选择任何内容,则显示所有帖子我想知道我的Controller是否不可避免地会因大量条件语句而显得粗糙...这是我解决此问题的错误方法-有谁知道我如何才能做到这一点?classPostsController 最佳答案 您最好遵循“胖模型,瘦Controller”的惯例,这意味着您应该将这种逻辑放在模型本身中。Post类应该能够报告

  6. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  7. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  8. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  9. ruby-on-rails - Rails 3 - 过滤器链暂停为 :authentication rendered or redirected - 2

    我仍然收到标题中的“错误”消息,但不知道如何解决。在ApplicationController中,classApplicationController在routes.rb#match'set_activity_account/:id/:value'=>'users#account_activity',:as=>:set_activity_account--thisdoesn'tworkaswell..resources:usersdomemberdoget:action_a,:action_bendcollectiondoget'account_activity'endend和User

  10. ruby - 在 Ruby 的 if 语句中检查 bash 命令 - 2

    如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最

随机推荐