关于蓝牙mac地址规则

MAC(Media Access Control,介质访问控制)

MAC地址是烧录在Network Interface Card(网卡,NIC)里的.

MAC地址,也叫硬件址,是由48比特长(6字节),16进制的数字组成.0-23位是由厂家自己分配.

24-47位,叫做组织唯一标志符(organizationally unique ,是识别LAN(局域网)节点标识。

其中第40位是组播地址标志位。 

MAC地址格式

MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE机构分配,而后6位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三字节。这样就可以保证世界上每个以太网设备都具有唯一的MAC地址。

网卡的物理地址通常是由网卡生产厂家烧入卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。     

也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如著名的以太网卡,其物理地址是48bit(  比特位 )的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买中一组,具体生产时,逐个将唯一地址赋予以太网卡。 形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。生产网卡、路由器、WIFI无线产品、蓝牙产品的厂商都需要为产品申请IEEE OUI代码,即MAC地址的厂商代码。厂家取得此代码后,加上24位(bite)的厂家自编设备号,组成设备的MAC地址。

MAC地址分类

在以太网中,目的地址可以分为三类:单播地址,多播地址和广播地址。

  • 单播地址:要求第一个字节bit0(即最先发出去的位)必须为0。比如:00-C0-16-00-00-03
  • 多播地址:要求第一个字节bit0(即最先发出去的位)必须为1。比如:01-C0-16-00-00-03
  • 广播地址:要求所有48bit都为1。即为:FF-FF-FF-FF-FF-FF

也即如果第二个16进制数为偶数就为单播地址,为奇数就为多播地址(同时非广播地址)。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: 在Android系统中,获取蓝牙MAC地址有多种方法,其中最常见的方法是使用BluetoothAdapter类中的getAddress()方法。该方法返回一个String类型的字符串,表示设备的蓝牙MAC地址。 使用该方法需要先获取BluetoothAdapter实例,可以通过调用getDefaultAdapter()静态方法来获得,如下所示: BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 接着,使用getAddress()方法获取设备的蓝牙MAC地址: String bluetoothMacAddress = bluetoothAdapter.getAddress(); 获得蓝牙MAC地址后,可以根据需要进行后续操作,例如在蓝牙设备发现和连接时使用。 需要注意的是,在一些设备上,蓝牙MAC地址可能无法获取或者该方法返回一个固定的值,这是由于硬件或者系统限制所导致的。因此,在应用程序中获取蓝牙MAC地址时需要谨慎,特别是对于涉及到隐私的应用场景。 ### 回答2: Android获取蓝牙MAC地址的方案: 1.使用BluetoothAdapter类获取MAC地址 首先,使用getSystemService方法获取BluetoothAdapter对象: BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 然后,使用getAddress方法得到MAC地址: String macAddress = bluetoothAdapter.getAddress(); 注意:这种方法只能在蓝牙处于开启状态时才能获取到MAC地址。 2.使用BluetoothDevice类获取MAC地址 如果想获取已经配对的蓝牙设备的MAC地址,可以使用BluetoothDevice类。 首先,使用getBondedDevices方法获取已配对的蓝牙设备集合: Set<BluetoothDevice> bondedDevices = bluetoothAdapter.getBondedDevices(); 然后,遍历集合,使用getAddress方法获取MAC地址: for (BluetoothDevice device : bondedDevices) { String macAddress = device.getAddress(); } 注意:这种方法只能获取到已经配对的蓝牙设备的MAC地址。 3.使用反射获取MAC地址 如果以上两种方式都无法获取到MAC地址,可以尝试使用反射的方式获取。 首先,获取BluetoothAdapter的Class对象: Class<?> bluetoothAdapterClass = BluetoothAdapter.class; 然后,使用getMethod方法获取getAddress方法: Method getAddressMethod = bluetoothAdapterClass.getMethod("getAddress"); 接下来,使用invoke方法执行方法: String macAddress = (String) getAddressMethod.invoke(bluetoothAdapter); 注意:使用反射可能存在风险,因为某些手机厂商可能会修改了BluetoothAdapter类的实现。 总之,以上三种方法都可以用于获取蓝牙MAC地址,具体应该根据实际情况选择使用哪种方式。 ### 回答3: Android获取蓝牙MAC地址,可以通过BluetoothAdapter的方法来进行操作。步骤如下: 1. 获取BluetoothAdapter对象 首先需要获取BluetoothAdapter对象,可以使用以下代码: ``` BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); ``` 2. 获取设备的蓝牙MAC地址 获取到BluetoothAdapter对象后,可以使用getAddress()方法获取设备的蓝牙MAC地址: ``` String bluetoothAddress = bluetoothAdapter.getAddress(); ``` 值得注意的是,getAddress()方法获取到的是设备的本地蓝牙MAC地址,而不是连接到该设备的蓝牙设备的MAC地址。 3. 权限声明 在进行蓝牙操作时,需要在AndroidManifest.xml中声明相应的权限,否则无法进行蓝牙相关操作。以下是需要声明的权限: ``` <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ``` 以上是获取蓝牙MAC地址的基本步骤,需要注意:在Android 6.0系统及以上版本中,Android强制要求应用程序在运行时动态申请权限。因此,需要在代码中加入动态权限申请的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值