67>>Mac地址

Mac地址是每张网卡的唯一标识符,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时烧在网卡的ROM中,可以修改。现在的Mac地址一般都采用6字节48bit(还有2字节16bit的Mac地址,多在局域网中使用),前3字节由各个企业向IEEE的RA机构购买,后3个字节由企业自己决定。

IEEE规定地址字段的第一字节的最低位为I/G比特,I/G表示Individual/Group。当I/G比特为0时,地址字段表示一个单播地址。当I/G比特为1的时候表示组地址,用来表示多播。因此,IEEE只分配地址字段的前3各字节中的23bit,当I/G比特分别为0和1时,一个地址块可以分别生成2^24个单个站地址和组播地址。但是IEEE制订的二进制EUI-48地址就有两种不同的记法(假设第一个字节为10000000):

802.5和802.6采用的标准,这种记法将最高位写在最左边,则I/G位为1。

802.3和802.4采用的标准。这种记法将每一个字节的高比特位写在最右边,I/G位为0

考虑到并不是所有的厂商都愿意购买机构唯一标志符,因此,IEEE将地址字段的第一字节的最低第2位规定成为G/L比特(Global/Local),G表示这个地址为全球管理,字段值为1,L表示为本地管理,这时用户可以任意分配网络上的地址。

但是应当指出的是,以太网几乎不使用G/L比特。

Linux下的修改Mac:

/sbin/ifconfig eth0 down            #关闭网卡
/sbin/ifconfig eth0 hw ether 00 AA BB CC DD EE        #设置Mac 2c:d2:3g:03:ab:0b
/sbin/ifconfig eth0 up            #启动网卡,重启后并没有修改成功

参考

《计算机网络》        6edition    谢希仁
http://blog.csdn.net/starshift/article/details/1613398
http://yanlong130.blog.163.com/blog/static/3754584320079141404794/

时间: 2024-10-11 17:59:29

67>>Mac地址的相关文章

QT5 获取mac地址和cpu序列号

1 #include <QCoreApplication> 2 #include <QStringList> 3 #include <QString> 4 #include <qdebug.h> 5 #include <QNetworkInterface> 6 7 #ifdef __GNUC__ 8 #include <cpuid.h> 9 #elif defined(_MSC_VER) 10 #if _MSC_VER >= 1

使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)

最近在公司实习,有个应用需要获取windows主机的一些硬件信息,在网上查阅了一些资料,大部分都是使用WMI编程来实现的. 因此小菜鸟自己也用WMI实现了一下,封装为函数GetUserInfo(),具体代码如下: 头文件UserInfo.h: 1 #pragma once 2 #include "stdafx.h" 3 #define _WIN32_DCOM 4 #include <comdef.h> 5 #include <Wbemidl.h> 6 # pra

android获取Mac地址和IP地址

获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信息获取本地Mac public static String getLocalMacAddressFromWifiInfo(Context context){ WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_

网络基本概念备忘:MAC地址,端口,HTTP状态码

MAC地址 英文MAC Address 英文全称: Media Access Control Address 别称:硬件位址 用途:定义网络设备位置 表示:十六进制数,6 Byte 特点:产品出产后MAC地址就固定了 用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位).其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位

[记]Linux 获取本机(全部)IP、MAC地址方法 (C/C++)

Linux 获取本机IP.MAC地址用法大全 1 2 //#include <sys/types.h> 3 #include <ifaddrs.h> 4 #include <sys/ioctl.h> 5 #include <net/if.h> 6 #include <string.h> 7 #include <stdio.h> 8 #include <unistd.h> 9 #include <netdb.h>

(转)【Android】获取Mac地址【2】

[Android]获取Mac地址[2] 之前写了[Android]获取Mac地址[1]有些不够详细,现在贴上一些其他代码,仅供参考. (1) 调用android 的API: NetworkInterface. getHardwareAddress () 该API的level为9,只有android 2.3以上才有该接口 (2) 调用java 的方法: nbtstat/arp 一般android不支持这两个命令.该方法没有试过. (3) 调用Android的API: WifiManager 权限:

【转】java:多网卡环境下获取MAC地址

http://blog.csdn.net/10km/article/details/78569962 JDK6以后 java.net.NetworkInterface提供了完整的方法用于获取网络设备信息. 调用 NetworkInterface.getNetworkInterfaces()可以返回所有网络设备 调用NetworkInterface.getHardwareAddress()就可以获取指定网卡的MAC. 下面的完整代码基于NetworkInterface提供了getNICs方法用于获

如何通过C语言获取主机WLAN下的IPv4地址,MAC地址,局域网网关IPv4地址

1 #include "stdio.h" 2 #include "windows.h" 3 4 void GetHostWLAN_IPv4_AND_MAC(char IPv4[], char MAC[],char GateWay[]); //获取WLAN下的IPv4和MAC地址,局域网网关IPv4地址(基于win10中文版编写) 5 6 int main() 7 { 8 char IPv4[16] = { 0 }; 9 char MAC[18] = { 0 }; 1

Web获取客户端物理MAC地址

主要是通过ActiveX控件 从本地获取到MAC地址,传入到浏览器打开的网页中,再提交到服务器. 具体详解与步骤看文档中: 文件实例包下载 DotNetFX 文件夹附件文件:(可能安装时需用) dotnetfx.exe  (.net Framework 2.0) instmsia.exe langpack.exe WindowsInstaller-KB893803-v2-x86.exe