1.目的

识别什么是主动扫描 什么是被动扫描

2.分析

在实际中如果需要获得扫描响应,需要主机设置为主动扫描。如果仅仅是需要广播数据则设置为被动扫描。主动扫描和被动扫描的区别在于:主动扫描可以获得广播数据和扫描回应数据。而被动扫描只能获得广播数据不能获得扫描数据。

3.平台:

协议栈版本:SDK10.0.0

编译软件:keil 5.12

硬件平台:微雪开发板nrf51822

例子:SDK10.0\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10028\s130\arm4

4.步骤

参考资料:《低功耗蓝牙开发权威指南》

1.被动扫描

2.主动扫描

详细参考书籍《低功耗蓝牙开发权威指南》 第114页

接下来实验:

扫描参数设置:

[cpp] view plaincopy
  1. /** @brief Scan parameters requested for scanning and connection. */
  2. static const ble_gap_scan_params_t m_scan_param =
  3. {
  4. 0,              // Active scanning not set.  //设置为被动扫描
  5. 0,              // Selective scanning not set.
  6. NULL,           // No whitelist provided.
  7. SCAN_INTERVAL,
  8. SCAN_WINDOW,
  9. 0x0000          // No timeout.
  10. };
[cpp] view plaincopy
  1. case BLE_GAP_EVT_ADV_REPORT:
  2. {
  3. uint32_t err_code;
  4. data_t   adv_data;
  5. data_t   type_data;
  6. // For readibility.
  7. const ble_gap_addr_t  * const peer_addr = &p_gap_evt->params.adv_report.peer_addr;
  8. // Initialize advertisement report for parsing.                                                                                      adv_data.p_data     = (uint8_t *)p_gap_evt->params.adv_report.data;
  9. adv_data.data_len   = p_gap_evt->params.adv_report.dlen;
  10. //这里是打印蓝牙地址
  11. NRF_LOG_PRINTF(" peer_addr  = %d %d %d %d %d %d\r\n", peer_addr->addr[0],peer_addr->addr[1],peer_addr->addr[2],peer_addr->addr[3],peer_addr->addr[4],peer_addr->addr[5] );
  12. / NRF_LOG_PRINTF(" p_gap_evt->params.adv_report.type  = %d\r\n", p_gap_evt->params.adv_report.type );                            //这里是打印是否为回应包 回应包为1,广播包为0
  13. NRF_LOG_PRINTF(" p_gap_evt->params.adv_report.scan_rsp  = %d\r\n", p_gap_evt->params.adv_report.scan_rsp );                         //答应对应的数据  广播包或者回应报
  14. NRF_LOG_PRINTF(" adv_data.p_data = %s\r\n", adv_data.p_data );

因为周围有很多蓝牙设备 。现在就来扫描了。

可以看到p_gap_evt->params.adv_report.scan_rsp = 0 表示是广播包。

再看把扫描改为主动扫描

[cpp] view plaincopy
  1. /** @brief Scan parameters requested for scanning and connection. */
  2. static const ble_gap_scan_params_t m_scan_param =
  3. {
  4. 1,              // Active scanning not set. //改为主动扫描
  5. 0,              // Selective scanning not set.
  6. NULL,           // No whitelist provided.
  7. SCAN_INTERVAL,
  8. SCAN_WINDOW,
  9. 0x0000          // No timeout.
  10. };

结果如下:

扫描回应数据了。。。ok 实验成功!!!!!

BLE主机主动扫描和被动扫描相关推荐

  1. 主动扫描和被动扫描的区别

    主动扫描和被动扫描知识 对于一个station来说,如果希望连接到AP,首先必须发现AP.发现的方式就两种被动扫描(passive scan)和主动扫描(active scan),记住两个关键字:被动 ...

  2. Android Wifi 主动扫描 被动扫描

    介绍主动扫描,被动扫描以及连接的wifi的扫描过程 参考文档 <802.11无线网络权威指南> <80_Y0513_1_QCA_WCN36X0_SOFTWARE_ARCHITECTU ...

  3. [转]Android Wifi 主动扫描 被动扫描

    介绍主动扫描,被动扫描以及连接的wifi的扫描过程 参考文档 <802.11无线网络权威指南> <80_Y0513_1_QCA_WCN36X0_SOFTWARE_ARCHITECTU ...

  4. 被动扫描、主动扫描的概念

    被动扫描.主动扫描:对一个目标进行信息的搜集 一.被动扫描 特点:主要指的是在目标无法察觉的情况下进行的信息收集 有时我们需要对某个网站进行黑盒测试,从他人那里只能获得一个域名,通过这个域名,我们可以 ...

  5. 主机扫描、端口扫描、系统扫描、漏洞扫描

    主机扫描.端口扫描.系统扫描.漏洞扫描 主机扫描 找出网段内活跃主机. 主机扫描方式: 1.传统 ICMP Ping 扫描 2.ACK Ping 扫描 3.SYN Ping 扫描 4.UDP Ping ...

  6. windows下配置odbc时userid填什么_BurpSuite + Xray 被动扫描配置

    BurpSuite手动测试配合xray做被动扫描,实际使用结果还不错,主要扫描出的漏洞集中在敏感信息泄露和xss一类的. 0x00.BurpSuite的代理配置: 首先需要配置BurpSuite转发i ...

  7. 第七章(五)—主动信息收集—端口扫描(基于TCP全连接扫描、隐蔽扫描、僵尸扫描、UDP的端口扫描)

    `## 端口扫描 端口对应网络服务及应用端程序 服务端程序的漏洞通过端口攻入 发现开放的端口 更具体的攻击面 UDP端口扫描 向某一端口发送UDP数据包,如果目标ip给我一个ICMP prot-unr ...

  8. 渗透测试培训必会工具xray扫描器被动扫描的使用(二)

    渗透测试培训必会工具xray扫描器的使用(一) 承接上篇,这次我们讲解被动扫描. 本例我们使用kalilinux,以及kali下的burpsuite结合来使用. 首先执行命令: ./xray_linu ...

  9. web扫描姿势——xray被动扫描

    作者:小刚 一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢 本实验仅用于信息防御教学,切勿用于其它用途 web扫描技巧 web扫描新姿势:被动扫描 passive-scan-client介绍 xr ...

最新文章

  1. chrome设置微信ua_Chrome谷歌浏览器模拟微信内置浏览器的方法(电脑上)
  2. sql移动加权计算利润_计算机视觉中的半监督学习
  3. python最简分数_592. 分数加减法运算(Python)
  4. 再等等!iPhone 11和iPhone SE还会继续降价
  5. Java 输入输出流 转载
  6. 整理转载:分枝定界图解(含 Real-Time Loop Closure in 2D LIDAR SLAM论文部分解读及BB代码部分解读)
  7. welearn视听说 读写 答题助手 综合插件
  8. Yarn Web页面 8088 端口在Windows浏览器无法访问
  9. 公司是船,我在船上。
  10. C语言基础专业书,零基础学C语言(第3版) (康莉/李宽 等著) 中文pdf完整版[29MB]
  11. 手机投屏电视显示服务器连接失败,投屏失败怎么办?两种投屏到电视的方法教学...
  12. 强大的 mysql管理工具之 Mysql Query Browser
  13. 显卡知识扫盲 为你讲述流水线的发展与未来
  14. 二路归并排序原理及JAVA实现
  15. 【SolidWorks宏】VBA操作SolidWorks程序对象
  16. Error creating document instance. Cause: org.xml.sax.SAXParseException报错解决
  17. 是时候,平息这颗躁动不安的心了
  18. Cocos2d-x 3.0 红孩儿私家必修 - 第一章 初识Cocos2d-x 3.0工程
  19. 基站天线天天见,它到底长啥样?
  20. HTML积分小游戏,js实现带积分弹球小游戏

热门文章

  1. Gogland IDE Run/Debug Configurations 配置说明
  2. String为什么是不可变类型?
  3. c-nominated = ((rcheck-use_candidate) || c-nominated);
  4. Linux:nice函数
  5. 字符文本中的字符太多_文本对抗---字符级别的攻击
  6. python怎么用pip_python怎么使用pip工具
  7. 计算机光驱参数,请问,电脑光驱插入关盘,打开时显示“参数不正确,无法打开”,这是什么故障,怎么处理?...
  8. php实现微信清粉功能,PHP实现微信提现功能
  9. 普平数据招聘:数据中心建设项目经理(工程部 )2人
  10. 2020年度国家绿色数据中心名单正式发布