native wifi mac rssi

最近一直在整无线网络的项目,

首先就要取出周围无线AP的mac和rssi,

在win7 和 vista上,这是很简单的事,

但要考虑到xp,还要做到统一,就有点难度了。

这里,我就我所知总结一下,

希望对需要的人有所帮助,

如有不对,欢迎探讨。

在xp上,可以通过调用DeviceIoControl()函数取得周围无线AP的mac和rssi,

先调用DeviceIoControl( ..., IOCTL_NDIS_QUERY_GLOBAL_STATS,
                                     OID_802_11_BSSID_LIST_SCAN,....)进行扫描

再调用DeviceIoControl( ..., IOCTL_NDIS_QUERY_GLOBAL_STATS,
                                     OID_802_11_BSSID_LIST,....)进行获取即可。

但由于这套机制以后渐渐被废除,msdn上建议用wmi机制完成。

xp sp2以后,windows提供了native wifi api,使对无线网卡的操作变得简单而又复杂,

首先就获取周边无线ap的信息来说,有两个函数

WlanGetAvailableNetworkList()和WlanGetNetworkBssList(),

xp sp2, vista, win7都支持WlanGetAvailableNetworkList(),

但该函数既不能获得周边ap的mac地址,也不能获取rssi,

只能得到ssid,和信号质量,信号质量可以通过线性插值转换为rssi,

具体用法可以参考

http://msdn.microsoft.com/en-us/library/ms706749(VS.85).aspx

相比而言,WlanGetNetworkBssList()就强大了许多,

轻易就可以获取周边ap的mac和rssi,但好像不能获得加密信息,

看似问题很容易就解决,

可该函数只在vista以后的平台提供,

在xp下不提供。

这里我只是提供了总结,具体的api还是去msdn上查询比较透彻!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值