项目中有需求用wifi设备获取接入终端的mac地址,这个利用wifi探针可以做到,但有局限性,就是手机必须连接上wifi或者说发起了连接请求,目前仍做不到用户的无感知探测(PS:这么猥琐的方式还是不鼓励)。透过表面看本质,探索下原因,主要是Beacon和Probe Request在发挥作用

下面引用了802.11协议簇里面关于wifi连接过程的描述,从网络上copy的,更详细的可以看IEEE相关文档

0x1: 普通无加密连接过程

1. AP发送Beacon广播管理帧

因为AP发送的这个Beacon管理帧数据包是广播地址,所以我们的PCMIA内置网卡、或者USB外界网卡会接收到这个数据包,然后在我们的"无线连接列表"中显示出来

2. 客户端向承载指定SSID的AP发送Probe Request(探测请求)帧

当我们点击"连接"的时候,无线网卡就会发送一个Prob数据帧,用来向AP请求连接

3. AP接入点对客户端的SSID连接请求进行应答

AP对客户端的连接作出了回应,并表示不接受任何形式的"帧有效负载加密(frame-payload-encryption)"

4. 客户端对目标AP请求进行身份认证(Authentication)

5. AP对客户端的身份认证(Authentication)请求作出回应

AP回应,表示接收身份认证

6. 客户端向AP发送连接(Association)请求

身份认证通过之后,所有的准备工作都做完了,客户端这个时候可以向WLAN AP发起正式的连接请求,请求接入WLAN

7. AP对连接(Association)请求进行回应

AP对客户端的连接请求(Association)予以了回应(包括SSID、性能、加密设置等)。至此,Wi-Fi的连接身份认证交互就全部结束了,之后就可以正常进行数据发送了

8. 客户端向AP请求断开连接(Disassociation)

当我们点击"断开连接"的时候,网卡会向AP发送一个断开连接的管理数据帧,请求进行断开连接

android mac 探针,wifi探针获取手机mac地址相关推荐

  1. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

  2. android模拟ip地址,安卓 获取手机IP地址的实现代码

    1.获取手机IP地址的代码: public static String getLocalIpAddress(){ try{ for (Enumeration en = NetworkInterface ...

  3. android获取ip方法,Android开发准确获取手机IP地址的两种方式

    最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下获取ip地址的两种方式. 比如微信支付,后台在做接口的时候,要求App端传入IP地址,我们需要判断是网络环境,WI-FI还是3G, ...

  4. android 获取wifi的ip地址吗,Android开发实现在Wifi下获取本地IP地址的方法

    本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开 ...

  5. php获取手机ip地址,获取手机的ip地址

    获取手机的ip地址 2014年10月14号 发表于:评论 () 热度:1287 随着手机功能的不断完善,手机网站的开发日趋简单,所以很多人都趋于用html不限定宽度的方式来写电脑网页.同样的,手机浏览 ...

  6. 如何正确获取手机IP地址

    随着手机功能的不断完善,手机网站的开发日趋简单,所以很多人都趋于用html不限定宽度的方式来写电脑网页.同样的,手机浏览器也不单单只支持wml格式的文件.除了不支持JS脚本程序以外,和电脑访问几乎没有 ...

  7. android 手机固定mac,Android之获取手机MAC

    一种比较折衷的办法,在获取MAC地址之前先判断当前WiFi状态,若开启了Wifi,则直接获取MAC地址,若没开启Wifi,则用代码开启Wifi,然后马上关闭,再获取MAC地址. ​ 目前此方法测试成功 ...

  8. 获取手机mac php,IOS_iOS如何获取手机的Mac地址,首先说明下,下面两种方法均 - phpStudy...

    iOS如何获取手机的Mac地址 首先说明下,下面两种方法均可以获得手机的mac地址,但是有个限制,是在iOS7以下才可以获得.iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC地址返回 ...

  9. tcp服务器维护接入客户端mac,tcp服务器怎么获取客户端mac

    tcp服务器怎么获取客户端mac 内容精选 换一换 本章节中介绍的初始配置操作只需在每台终端设备上配置一次.初始配置需要的数据及其详细配置步骤,由管理员根据实际情况定制.客户端支持中标麒麟桌面操作系统 ...

  10. 获取android设备唯一编号_android 获取手机设备的唯一码(IMIE )

    获取手机设备的唯一码(IMIE ) public void fetch_status(){ TelephonyManager tm = (TelephonyManager) this .getSyst ...

最新文章

  1. 漫画:五分钟学会贪心算法!
  2. 深入研究自监督单目深度估计:Monodepth2
  3. 谷歌浏览器添加JSON-Handle插件
  4. 基于继承类的属性模版中无法绑定的原因和解决方法
  5. 动态顺序字符串基本操作实验_掌握套路,你也会用动态规划
  6. Sublime Text 关闭自动更新
  7. mysql数据库内置函数大全_(MariaDB)MySQL内置函数大全
  8. Mysql Data type
  9. paip.XXListener is already configured监听器已经被配置的解决
  10. python异常类父类_python【第五篇】异常处理
  11. 小波分解和小波包分解
  12. vue:antV G2在vue中的使用(阿里图表,类似echarts)
  13. 洪水填充算法_计算机图形:洪水填充算法
  14. 晓黑板显示服务器开小差是啥问题,晓黑板怎样写作文
  15. AM5728高性能SOC,满足工业协议支持、大数据计算、实时控制等需求,适用于图像处理、电力协议管理
  16. 【Java】2.Java体系架构(SE的组成概念图)
  17. 【4D毫米波雷达技术发展趋势分析】
  18. ./configure 报错
  19. 浪漫程序员会表白之抖音旋转立方体照片墙
  20. csdn-Python 技能树体验评测

热门文章

  1. 《阿里云前端技术周刊》第二期
  2. 如何在 Kubernetes 集群中集成 Kata
  3. class path resource [bean1.xml] cannot be opened because it does not exist
  4. 未实施内容安全策略 (CSP)
  5. 小网站云服务器配置推荐,小网站云服务器配置推荐
  6. 基于Femu搭建ZNS
  7. 设置名字的第一个字为默认头像
  8. python爬虫抓取,免费高匿快代理 IP
  9. python多线程网易云歌单
  10. vue 萤石_Vue接入萤石实时视频