項(xiàng)目中有需求用wifi設(shè)備獲取接入終端的mac地址,這個(gè)利用wifi探針可以做到,但有局限性,就是手機(jī)必須連接上wifi或者說(shuō)發(fā)起了連接請(qǐng)求,目前仍做不到用戶的無(wú)感知探測(cè)(PS:這么猥瑣的方式還是不鼓勵(lì))。透過(guò)表面看本質(zhì),探索下原因,主要是Beacon和Probe Request在發(fā)揮作用
下面引用了802.11協(xié)議簇里面關(guān)于wifi連接過(guò)程的描述,從網(wǎng)絡(luò)上copy的,更詳細(xì)的可以看IEEE相關(guān)文檔
0x1: 普通無(wú)加密連接過(guò)程
1. AP發(fā)送Beacon廣播管理幀
因?yàn)锳P發(fā)送的這個(gè)Beacon管理幀數(shù)據(jù)包是廣播地址,所以我們的PCMIA內(nèi)置網(wǎng)卡、或者USB外界網(wǎng)卡會(huì)接收到這個(gè)數(shù)據(jù)包,然后在我們的"無(wú)線連接列表"中顯示出來(lái)
2. 客戶端向承載指定SSID的AP發(fā)送Probe Request(探測(cè)請(qǐng)求)幀
當(dāng)我們點(diǎn)擊"連接"的時(shí)候,無(wú)線網(wǎng)卡就會(huì)發(fā)送一個(gè)Prob數(shù)據(jù)幀,用來(lái)向AP請(qǐng)求連接
3. AP接入點(diǎn)對(duì)客戶端的SSID連接請(qǐng)求進(jìn)行應(yīng)答
AP對(duì)客戶端的連接作出了回應(yīng),并表示不接受任何形式的"幀有效負(fù)載加密(frame-payload-encryption)"
4. 客戶端對(duì)目標(biāo)AP請(qǐng)求進(jìn)行身份認(rèn)證(Authentication)
5. AP對(duì)客戶端的身份認(rèn)證(Authentication)請(qǐng)求作出回應(yīng)
AP回應(yīng),表示接收身份認(rèn)證
6. 客戶端向AP發(fā)送連接(Association)請(qǐng)求
身份認(rèn)證通過(guò)之后,所有的準(zhǔn)備工作都做完了,客戶端這個(gè)時(shí)候可以向WLAN AP發(fā)起正式的連接請(qǐng)求,請(qǐng)求接入WLAN
7. AP對(duì)連接(Association)請(qǐng)求進(jìn)行回應(yīng)
AP對(duì)客戶端的連接請(qǐng)求(Association)予以了回應(yīng)(包括SSID、性能、加密設(shè)置等)。至此,Wi-Fi的連接身份認(rèn)證交互就全部結(jié)束了,之后就可以正常進(jìn)行數(shù)據(jù)發(fā)送了
8. 客戶端向AP請(qǐng)求斷開(kāi)連接(Disassociation)
當(dāng)我們點(diǎn)擊"斷開(kāi)連接"的時(shí)候,網(wǎng)卡會(huì)向AP發(fā)送一個(gè)斷開(kāi)連接的管理數(shù)據(jù)幀,請(qǐng)求進(jìn)行斷開(kāi)連接