Windows Phone获取WiFi BSSID

原文:Windows Phone获取WiFi BSSID

BSSID,一种特殊的Ad-hoc LAN的应用,也称为Basic Service Set (BSS),一群计算机设定相同的BSS名称,即可自成一个group。每个BSS都会被赋予一个BSSID,它是一个长度为48位的二进制标识符,用来识别不同的BSS。其的主要优点是它可以作为过滤之用。

BSSID 是指站点的 MAC 地址,(STA)在一个接入点,(AP)在一个基础架构模式, BSS 是由 IEEE 802.11-1999 无线局域网规范定义的。这个区域唯一地定义了每个 BSS 。在一个 IBSS 中,BSSID 是一个本地管理的 IEEE MAC 地址,从一个 46 位的任意编码中产生。地址的个体/组位被设置为 0 。通用/本地地址位被设置为 1 。

以上话来自百度百科。

之前开发的时候是为了获取手机所连接的热点的MAC 地址,所以一直是寻找WiFi MAC 地址相关的API或者方法,但没有成功。

 LanIdentifier Class 

位置数据可表示为 BSSID(如果网络适配器媒体类型是无线 LAN),或不是为元组 <ChassisId, Port Number>(如果网络适配器类型是以太网)。根据 LLDP 协议表示数据。

  有关如何检索 LanIdentifier 对象表示的数据的示例,请参见 如何检索网络适配器和位置信息。  

直接贴代码吧

    string GetLanIdentifierData(LanIdentifier lanIdentifier)
      {
          string lanIdentifierData = string.Empty;
          if (lanIdentifier == null)
          {
              return lanIdentifierData;
          }

          if (lanIdentifier.InfrastructureId != null)
          {
              lanIdentifierData += "Infrastructure Type: " + lanIdentifier.InfrastructureId.Type + "\n";
              lanIdentifierData += "Infrastructure Value: ";
              var infrastructureIdValue = lanIdentifier.InfrastructureId.Value;
              foreach (var value in infrastructureIdValue)
              {
                  lanIdentifierData += value + " ";
              }
          }

          if (lanIdentifier.PortId != null)
          {
              lanIdentifierData += "\nPort Type : " + lanIdentifier.PortId.Type + "\n";
              lanIdentifierData += "Port Value: ";
              var portIdValue = lanIdentifier.PortId.Value;
              foreach (var value in portIdValue)
              {
                  lanIdentifierData += value + " ";
              }
          }

          if (lanIdentifier.NetworkAdapterId != null)
          {
              lanIdentifierData += "\nNetwork Adapter Id : " + lanIdentifier.NetworkAdapterId + "\n";
          }
          return lanIdentifierData;
      }

 其中 lanIdentifier.InfrastructureId.Value 就是BSSID了,需要取出来,并且转为16进制。

for (int i = 0; i < lanIdentifier.InfrastructureId.Value.Count; i++){
  lanIdentifierData += lanIdentifier.InfrastructureId.Value[i].ToString("X2");
}

这获取的就是BSSID了,至少我获取的值与iPhone获取的值对比是一样的。

另外,IReadOnlyList<LanIdentifier> lanIdentifiers = NetworkInformation.GetLanIdentifiers(); Windows 8也支持。

希望对您有帮助。

 

时间: 2024-10-24 09:40:43

Windows Phone获取WiFi BSSID的相关文章

C++程序中使用Windows系统Native Wifi API的基本教程_C 语言

Windows应用想要实现连接wifi,监听wifi信号,断开连接等功能,用NativeWifi API是个不错的选择. 打开MSDN,搜索NativeWifi Api,找到Native Wifi页.在这里. 信息量很大,如果像我着急实现上述功能,看海量的文档有些来不及.如果直接给我例子,在运行中调试,阅读代码,效率会更高. 但是,我并没有成功.首先,Sample在SDK中,参见这里.我下载几次都失败了,最后放弃这条路.后来同事给了我一份Sample,我不敢确定是否就是这个,但是代码写的也是很晦

vc++-windows如何获取当前应用程序使用的网络类型

问题描述 windows如何获取当前应用程序使用的网络类型 请问各位,Windows下如何获取当前应用程序使用的网络类型?是WIFI还是有线网络. 1.目前实在是没找到类似安卓或者IOS那样的直接就可以读取的API.有的话跪求 2.现在所能想到的就是使用GetAdaptersInfo遍历获取到所有的网卡类型和对应的IP地址, 然后根据gethostbyname得到本地地址,用这个本地地址去匹配遍历得到的网卡IP.这样是否会有问题呢(考虑多网卡的情况) 解决方案 windows上面没有直接提供这一

Windows 10中WiFi密码共享引发安关注

本文讲的是 :  Windows 10中WiFi密码共享引发安关注  ,  [IT168 资讯]随着Windows 10的推出,每一位走入我们家居或者办公环境的陌生人都能够在自己的PC上获取到Wi-Fi密码--这项功能的本意是让用户的朋友更轻松接入网络,但这项新功能却在安全领域引发了广泛争议. 这项名为Wi-Fi Sense的功能旨在帮助人们更轻松地将自有设备接入到互联网当中,具体来讲就是允许我们的设备自动登录当前无线热点.它是通过两步走方式实现这项目标的:首先将用户登录至选定开放网络,并允许他

C#实现从windows剪贴板获取内容的方法

  本文实例讲述了C#实现从windows剪贴板获取内容的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Data; using System.Windows.Forms; public class Ma

ios-iOS中如何获取wifi的路由器地址

问题描述 iOS中如何获取wifi的路由器地址 iOS开发中,手机连接wifi,怎么获取wifi或网关的路由器的地址 解决方案 刚遇到这个问题 http://blog.csdn.net/u010990519/article/details/41677549 解决方案二: 转载,或许可以参考,ios设备唯一标识获取策略 iOS中获取网卡mac的代码如下: #include // Per msqr #include #include #include #pragma mark MAC addy //

java windows api-通过Windows API获取不到java程序的子窗体和界面控件

问题描述 通过Windows API获取不到java程序的子窗体和界面控件 有一个java写的桌面应用程序,我想用C#自动控制这个程序. 我在C#中用Windows API的FindWindow可以找到它的主窗体句柄,但是用FindWindowEx和EnumChildWindows无法找到它的子窗体和控件. 解决方案 java写的程序就不要指望了,swing之类的库,界面都是画上去的,不是windows窗口. 解决方案二: 1.确定控件(子窗口)存在,如果是画上去的没有子窗口. 2.用spy++

c#怎么获取wifi的发射功率

问题描述 网上找了一大圈都是只能获取wifi强度的有没有什么方法可以获取wifi的发射功率的 解决方案 解决方案二:自顶.......解决方案三:接受到的功率就是:10的(强度dbm/10)次方mw你要知道发射功率还要乘上个距离的平方

windows编程-在windows下开wifi热点 wifi欢迎页是如何实现的?

问题描述 在windows下开wifi热点 wifi欢迎页是如何实现的? 在windows下开wifi热点 wifi欢迎页是如何实现的? 解决方案 同求,我想到了使用命令启动wifi然后抓包

wifi channel-请问如何利用windowsAPI中获取WIFI频道?

问题描述 请问如何利用windowsAPI中获取WIFI频道? 求教:WlanAPI如何获得搜到的wifi信号的频道? 请会的朋友帮下忙吧,感激不尽. 解决方案 http://blog.csdn.net/lincyang/article/details/34430939 解决方案二: 终于查到了,在WlanGetNetworkBssList()能获得...