首页 > 其他分享 >Android Wifi 扫描相关知识

Android Wifi 扫描相关知识

时间:2024-07-31 17:30:59浏览次数:17  
标签:Probe SSID WIFI Wifi 扫描 网络 Android STA

1. 主动扫描 和 被动扫描

1.1 主动扫描(Active Scanning)

主动扫描是WIFI设备(STA,即 Station,如手机、笔记本电脑等)在信道上主动广播一个探测请求(Probe Request),并等待接入点(AP)的响应。这种扫描方式更加主动,能够更快地发现周围的WIFI网络,但也可能对电池寿命和性能功耗产生一定的影响。
主要步骤

  1. 发送 Probe Request 帧
  • STA 在指定的信道上发送 Probe Request 帧,该帧中可以包含特定的 SSID(服务集标识符),也可以不包含(即使用广播 SSID)
  • 如果包含特定的 SSID,则成为 “Directed Probe”(直接探测),用于查找具有该 SSID 的AP。
  • 如果 SSID 字段为 NULL,则称为 “Broadcast Probe”(广播探测),用于获取周围所有可探测到的无线网络信号。
  1. 等待 Probe Response 帧
  • AP 在收到与自己 SSID 匹配的 Probe Request 帧后,会发送 Probe Response 帧作为回应
  • STA 通过接收这些 Probe Response 帧来获取周围 WIFI 网络的信息,如 SSID,BSSID(基本服务集标识符,即AP的MAC地址)、信号强度等

优点与缺点
优点:能够快速发现周围的 WIFI 网络,特别是网络隐藏 SSID 的情况下。
缺点:由于需要主动发送探测请求,因此可能会对电池寿命和性能产生一定的影响。

1.2 被动扫描(Passive Scanning)

被动扫描是 WIFI 设备(STA)不发送任何探测请求,而是被动地接受来自 AP 定期发送的信标帧(Beacon Frame)。这种扫描方式更省电,因为不需要发送任何信号,但可能无法及时发现新出现的 WIFI 网络或隐藏 SSID 的网络。
主要步骤

  1. 监听 Beacon 帧:
  • STA 在不同的信道之间切换,并监听空中传输的 Beacon 帧
  • Beacon 帧是 AP 定期发送的广播帧,其中包含了 SSID、支持的速率、安全设置等网络的基本信息
  1. 手机网络信息
  • STA 通过接受 Beacon 帧来收集周围 WIFI 网络的信息,并将其存储在本地数据库中
  • 用户可以通过查看这些信息来选择要连接的 WIFI 网络

优点与缺点
优点:不需要发送任何信号,因此更加省电,且对性能的影响较小。
缺点:可能无法及时发现新出现的WIFI网络或隐藏 SSID 的网络

1.3 结论

主动扫描和被动扫描各有优缺点,适用于不同的场景和需求。在实际应用中,Android设备通常会根据用户的设置和网络环境自动选择适合的扫描方式,以平衡扫描速度和电池寿命。例如,在需要快速发现新网络时,可以选择主动扫描;而在设备处于低功耗模式或用户不关心新网络出现时,则可以选择被动扫描。

标签:Probe,SSID,WIFI,Wifi,扫描,网络,Android,STA
From: https://www.cnblogs.com/caoshikui/p/18335071

相关文章

  • Android开发之热修复
    #来自ウルトラマンゼロ(哉阿斯)1热修复核心资源修复代码修复动态链接库修复2资源修复资源修复参考 InstantRun 的资源修复原理。创建AssetManager,通过反射调用addAssetPath方法加载外部的的资源。将AssetManager类型的mAssets字段的引用全部替换成新创建的......
  • Android RecyclerView
    AndroidRecyclerView介绍RecyclerView是Android的一个高级视图组件,旨在显示大量数据的列表或网格。相比于传统的ListView,RecyclerView提供了更多的功能和灵活性。AdapterAdapter是RecyclerView的数据源,负责将数据绑定到ViewHolder上。常见的Adapter实现包括Recy......
  • Android开发 - (适配器)Adapter类中ArrayAdapter实现类详细解析
    作用将数组数据映射到UI组件(如ListView、Spinner等)上的角色。它是BaseAdapter的一个子类,专门用于处理简单的数据集合,如数组或列表。ArrayAdapter简化了数据到视图映射的过程,使得开发者能够以更少的代码实现数据的展示。它的主要作用为以下几点:数据绑定:它能够将一组数据......
  • Nmap 7.95 - Zenmap 汉化版,端口扫描、网络嗅探工具
    Nmap7.95-Zenmap汉化版本来想找一个端口扫描工具,先找到了AngryIPScanner 用了一下,有时候扫不到,功能也比较单一。最后找到了Nmap,这个功能要强大很多。网上没有最新的汉化版本,老版本的汉化还存在BUG,于是自己动手汉化了一下。 功能介绍:  Nmap是一款功能强大的网络......
  • Fotify扫描问题Dynamic Code Evaluation:Code Injection
    在使用fotify代码扫描时,程序中JavaScript的eval()函数使用的地方会报DynamicCodeEvaluation:CodeInjection,解释为动态代码评估、代码注入,Web开发中。这两种风险都可能导致严重的安全问题.其安全问题大致描述为1、动态执行的代码可能会包含恶意代码,导致安全漏洞......
  • 无法从Android恢复删除的文件该怎么办?5 个方法可以学习参考下
    Android设备已成为我们生活中不可或缺的一部分,充当重要文件、照片和文档的存储中心。但是,意外时有发生,有时我们会不小心从Android设备中删除重要文件。好消息是,有一些方法可以从Android恢复永久删除的文件。在这篇博文中,我们将探讨各种方法和解决方案,以帮助您检索有价值的数据......
  • Androidstudio开发,购物商城app实现主页底部导航栏(四)
    相关视频教程在某站上面(......
  • Androidstudio开发,购物商城app实现商品分类列表(五)
    相关视频教程在某站上面(......
  • Kivy 2.3 VideoPlayer Android 崩溃
    我正在尝试创建视频.apk,其中包括Video或VideoPlayer.main.pyfromkivy.uix.videoimportVideofromkivy.appimportAppclassMyApp(App):defbuild(self):player=Video(source="1.mp4",options={'eos':'loop'......
  • Android开发 - List类中的CopyOnWriteArrayList实现类解析
    CopyOnWriteArrayList是什么CopyOnWriteArrayList是Java并发包(java.util.concurrent)中的一个并发安全的List实现类。它具有特定的设计,使得在并发场景下,读操作(如迭代)可以并发进行,而写操作(如添加、修改、删除)会进行一定的同步,但不会阻塞读操作主要特点和用法:线程安全......