搜档网
当前位置:搜档网 › 取得系统中网卡MAC地址的三种方法

取得系统中网卡MAC地址的三种方法

取得系统中网卡MAC地址的三种方法
取得系统中网卡MAC地址的三种方法

取得系统中网卡MAC地址的三种方法

第一种方法使用Microsoft的Netbios API。这是一套通过Winsock提供底层网络支持的命令。使用Netbios的最大缺点是您必须在系统中安装了Netbios 服务(如果您在windows网络中启用了文件共享的话,这就不是问题了)。除此此

外,这种方法又快又准确。

Netbios API只包括了一个函数,就叫做Netbios。这个函数使用网络控制块(network control block)结构作为参数,这个结构告诉函数要做什么。结构的定义如下:

typedef struct _NCB {

UCHAR ncb_command;

UCHAR ncb_retcode;

UCHAR ncb_lsn;

UCHAR ncb_num;

PUCHAR ncb_buffer;

WORD ncb_length;

UCHAR ncb_callname[NCBNAMSZ];

UCHAR ncb_name[NCBNAMSZ];

UCHAR ncb_rto;

UCHAR ncb_sto;

void (CALLBACK *ncb_post) (struct _NCB *);

UCHAR ncb_lana_num;

UCHAR ncb_cmd_cplt;

#ifdef _WIN64

UCHAR ncb_reserve[18];

#else

UCHAR ncb_reserve[10];

#endif

HANDLE ncb_event;

} NCB, *PNCB;

重点在于ncb_command 成员。这个成员告诉Netbios该作什么。我们使用三个命令来探测MAC地址。他们在MSDN的定义如下:

命令描述:

NCBENUM Windows NT/2000: 列举系统中网卡的数量。使用此命令后,ncb_buffer 成员指向由LANA_ENUM结构填充的缓冲区。

NCBENUM 不是标准的 NetBIOS 3.0 命令。

NCBRESET 重置网卡。网卡在接受新的NCB命令之前必须重置。

NCBASTAT 接受本地或远程接口卡的状态。使用此命令后,ncb_buffer成员指向由ADAPTER_STATUS结构填充的缓冲区,随后是NAME_BUFFER结构的数组。

下面就是取得您系统MAC地址的步骤:

1》列举所有的接口卡。

2》重置每块卡以取得它的正确信息。

3》查询接口卡,取得MAC地址并生成标准的冒号分隔格式。

下面就是实例源程序。

netbios.cpp

#include

#include

#include

#include

#include

using namespace std;

#define bzero(thing,sz) memset(thing,0,sz)

bool GetAdapterInfo(int adapter_num, string &mac_addr) {

// 重置网卡,以便我们可以查询

NCB Ncb;

memset(&Ncb, 0, sizeof(Ncb));

Ncb.ncb_command = NCBRESET;

Ncb.ncb_lana_num = adapter_num;

if (Netbios(&Ncb) != NRC_GOODRET) {

mac_addr = "bad (NCBRESET): ";

mac_addr += string(Ncb.ncb_retcode);

return false;

}

// 准备取得接口卡的状态块

bzero(&Ncb,sizeof(Ncb);

Ncb.ncb_command = NCBASTAT;

Ncb.ncb_lana_num = adapter_num;

strcpy((char *) Ncb.ncb_callname, "*");

struct ASTAT

{

ADAPTER_STATUS adapt;

NAME_BUFFER NameBuff[30];

} Adapter;

bzero(&Adapter,sizeof(Adapter));

Ncb.ncb_buffer = (unsigned char *)&Adapter;

Ncb.ncb_length = sizeof(Adapter);

// 取得网卡的信息,并且如果网卡正常工作的话,返回标准的冒号分隔格式。 if (Netbios(&Ncb) == 0)

{

char acMAC[18];

sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X",

int (Adapter.adapt.adapter_address[0]),

int (Adapter.adapt.adapter_address[1]),

int (Adapter.adapt.adapter_address[2]),

int (Adapter.adapt.adapter_address[3]),

int (Adapter.adapt.adapter_address[4]),

int (Adapter.adapt.adapter_address[5]));

mac_addr = acMAC;

return true;

}

else

{

mac_addr = "bad (NCBASTAT): ";

mac_addr += string(Ncb.ncb_retcode);

return false;

}

}

int main()

{

// 取得网卡列表

LANA_ENUM AdapterList;

NCB Ncb;

memset(&Ncb, 0, sizeof(NCB));

Ncb.ncb_command = NCBENUM;

Ncb.ncb_buffer = (unsigned char *)&AdapterList;

Ncb.ncb_length = sizeof(AdapterList);

Netbios(&Ncb);

// 取得本地以太网卡的地址

string mac_addr;

for (int i = 0; i < AdapterList.length - 1; ++i)

{

if (GetAdapterInfo(https://www.sodocs.net/doc/128175159.html,na[i], mac_addr))

{

cout << "Adapter " << int (https://www.sodocs.net/doc/128175159.html,na[i]) <<

"'s MAC is " << mac_addr << endl;

}

else

{

cerr << "Failed to get MAC address! Do you" << endl;

cerr << "have the NetBIOS protocol installed?" << endl;

break;

}

}

return 0;

}

file://---------------------------------------------------------------------------

第二种方法-使用COM GUID API

这种方法使用COM API创建一个GUID(全局唯一标识符)并从那里继承MAC地址。GUID通常用来标识COM组件以及系统中的其他对象。它们是由MAC地址(结合其他东西)计算得来的,表面上MAC地址就包含在其中。我说表面上是因为事实上并没有包含。

我提供这种方法更多的是为了作为反面教材。您也许用这种方法能够得到MAC

地址,但有时候您只会得到随机的十六进制数值。

下面的例子十分简单,无需多讲。我们使用CoCreateGuid创建GUID,并将最后六个字节放入字符串中。它们可能是MAC地址,但并不是必然的。

uuid.cpp

#include

#include

#include

using namespace std;

int main()

{

cout << "MAC address is: ";

// 向COM要求一个UUID。如果机器中有以太网卡,

// UUID最后的六个字节(Data4的2-7字节)应该是本地以太网卡的MAC 地址。

GUID uuid;

CoCreateGuid(&uuid);

// Spit the address out

char mac_addr[18];

sprintf(mac_addr,"%02X:%02X:%02X:%02X:%02X:%02X",

uuid.Data4[2],uuid.Data4[3],uuid.Data4[4],

uuid.Data4[5],uuid.Data4[6],uuid.Data4[7]);

cout << mac_addr << endl;

getch();

return 0;

}

第三种方法-使用SNMP扩展API

我要讨论的第三种方法是使用Windows的SNMP(简单网络管理协议)扩展来取得MAC地址。在我的经验里,这个协议很简单。代码也是直勾勾的向前的。基本步骤和Netbios相同:

1》取得网卡列表

2》查询每块卡的类型和MAC地址

3》保存当前网卡

我个人对SNMP了解不多,但如我刚刚所言,代码十分清楚。

snmp.cpp

#include

#include

#include

typedef bool(WINAPI * pSnmpExtensionInit) (

IN DWORD dwTimeZeroReference,

OUT HANDLE * hPollForTrapEvent,

OUT AsnObjectIdentifier * supportedView);

typedef bool(WINAPI * pSnmpExtensionTrap) (

OUT AsnObjectIdentifier * enterprise,

OUT AsnInteger * genericTrap,

OUT AsnInteger * specificTrap,

OUT AsnTimeticks * timeStamp,

OUT RFC1157VarBindList * variableBindings);

typedef bool(WINAPI * pSnmpExtensionQuery) (

IN BYTE requestType,

IN OUT RFC1157VarBindList * variableBindings,

OUT AsnInteger * errorStatus,

OUT AsnInteger * errorIndex);

typedef bool(WINAPI * pSnmpExtensionInitEx) (

OUT AsnObjectIdentifier * supportedView);

void main()

{

HINSTANCE m_hInst;

pSnmpExtensionInit m_Init;

pSnmpExtensionInitEx m_InitEx;

pSnmpExtensionQuery m_Query;

pSnmpExtensionTrap m_Trap;

HANDLE PollForTrapEvent;

AsnObjectIdentifier SupportedView;

UINT OID_ifEntryType[] = {1, 3, 6, 1, 2, 1, 2, 2, 1, 3};

UINT OID_ifEntryNum[] = {1, 3, 6, 1, 2, 1, 2, 1};

UINT OID_ipMACEntAddr[] = {1, 3, 6, 1, 2, 1, 2, 2, 1, 6};

AsnObjectIdentifier MIB_ifMACEntAddr =

{ sizeof(OID_ipMACEntAddr) sizeof(UINT), OID_ipMACEntAddr }; AsnObjectIdentifier MIB_ifEntryType =

{sizeof(OID_ifEntryType) sizeof(UINT), OID_ifEntryType};

AsnObjectIdentifier MIB_ifEntryNum =

{sizeof(OID_ifEntryNum) sizeof(UINT), OID_ifEntryNum};

RFC1157VarBindList varBindList;

RFC1157VarBind varBind[2];

AsnInteger errorStatus;

AsnInteger errorIndex;

AsnObjectIdentifier MIB_NULL = {0, 0};

int ret;

int dtmp;

int i = 0, j = 0;

bool found = false;

char TempEthernet[13];

m_Init = NULL;

m_InitEx = NULL;

m_Query = NULL;

m_Trap = NULL;

/* 载入SNMP DLL并取得实例句柄 */

m_hInst = LoadLibrary("inetmib1.dll");

if (m_hInst < (HINSTANCE) HINSTANCE_ERROR)

{

m_hInst = NULL;

return;

}

m_Init =

(pSnmpExtensionInit) GetProcAddress(m_hInst, "SnmpExtensionInit");

m_InitEx =

(pSnmpExtensionInitEx) GetProcAddress(m_hInst,

"SnmpExtensionInitEx");

m_Query =

(pSnmpExtensionQuery) GetProcAddress(m_hInst,

"SnmpExtensionQuery");

m_Trap =

(pSnmpExtensionTrap) GetProcAddress(m_hInst, "SnmpExtensionTrap");

m_Init(GetTickCount(), &PollForTrapEvent, &SupportedView);

/* 初始化用来接收m_Query查询结果的变量列表 */

varBindList.list = varBind;

varBind[0].name = MIB_NULL;

varBind[1].name = MIB_NULL;

/* 在OID中拷贝并查找接口表中的入口数量 */

varBindList.len = 1; /* Only retrieving one item */ SNMP_oidcpy(&varBind[0].name, &MIB_ifEntryNum);

ret =

m_Query(ASN_RFC1157_GETNEXTREQUEST, &varBindList, &errorStatus,

&errorIndex);

printf("# of adapters in this system : %in",

varBind[0].value.asnValue.number);

varBindList.len = 2;

/* 拷贝OID的ifType-接口类型 */

SNMP_oidcpy(&varBind[0].name, &MIB_ifEntryType);

/* 拷贝OID的ifPhysAddress-物理地址 */

SNMP_oidcpy(&varBind[1].name, &MIB_ifMACEntAddr);

do

{

/* 提交查询,结果将载入 varBindList。

可以预料这个循环调用的次数和系统中的接口卡数量相等 */ ret =

m_Query(ASN_RFC1157_GETNEXTREQUEST, &varBindList,

&errorStatus,

&errorIndex);

if (!ret)

ret = 1;

else

/* 确认正确的返回类型 */

ret =

SNMP_oidncmp(&varBind[0].name, &MIB_ifEntryType,

MIB_ifEntryType.idLength

); if (!ret) {

j++;

dtmp = varBind[0].value.asnValue.number;

printf("Interface #%i type : %in", j, dtmp);

/* Type 6 describes ethernet interfaces */

if (dtmp == 6)

{

/* 确认我们已经在此取得地址 */

ret =

SNMP_oidncmp(&varBind[1].name, &MIB_ifMACEntAddr,

MIB_ifMACEntAddr.idLengt h);

if ((!ret) && (varBind[1].value.asnValue.address.stream != NULL))

{

if((varBind[1].value.asnValue.address.stream[0] == 0x44)

&& (varBind[1].value.asnValue.address.stream[1] == 0x45)

&& (varBind[1].value.asnValue.address.stream[2] == 0x53)

&& (varBind[1].value.asnValue.address.stream[3] == 0x54)

&& (varBind[1].value.asnValue.address.stream[4] == 0x00))

{

/* 忽略所有的拨号网络接口卡 */

printf("Interface #%i is a DUN adaptern", j);

continue;

}

if ((varBind[1].value.asnValue.address.stream[0] ==

0x00)

&& (varBind[1].value.asnValue.address.stream[1] == 0x00)

&& (varBind[1].value.asnValue.address.stream[2] == 0x00)

&& (varBind[1].value.asnValue.address.stream[3] == 0x00)

&& (varBind[1].value.asnValue.address.stream[4] == 0x00)

&& (varBind[1].value.asnValue.address.stream[5] == 0x00))

{

/* 忽略由其他的网络接口卡返回的NULL地址 */

printf("Interface #%i is a NULL addressn", j);

continue;

}

sprintf(TempEthernet, "%02x%02x%02x%02x%02x%02x",

varBind[1].value.asnValue.address.stre am[0],

varBind[1].value.asnValue.address.stre am[1],

varBind[1].value.asnValue.address.stre am[2],

varBind[1].value.asnValue.address.stre am[3],

varBind[1].value.asnValue.address.stre am[4],

varBind[1].value.asnValue.address.stre am[5]);

printf("MAC Address of interface #%i: %sn", j,

TempEthernet);}

}

}

} while (!ret); /* 发生错误终止。 */

getch();

FreeLibrary(m_hInst);

/* 解除绑定 */

SNMP_FreeVarBind(&varBind[0]);

SNMP_FreeVarBind(&varBind[1]);

}

Windows中获取MAC地址的几种方法

Windows中获取MAC地址的几种方法 1.NDIS(DDK)通过驱动程序获取MAC地址 ndis规范中说明,网卡驱动程序支持ioctl_ndis_query_stats接口 参数如下: OID_802_3_PERMANENT_ADDRESS :物理地址 OID_802_3_CURRENT_ADDRESS :mac地址 于是我们的方法就得到了。 首先,看看注册表,找一找网卡有几块,分别是什么设备名。 具体位置和os有关,2000下在hlm\software\microsoft\windows nt\current version\networkcards。 然后createfile(devicename,...)注意,要用linkname,因此 还要加上"////.//device//". 接着 deviceiocontrol(hmac,IOCTL_NDIS_QUERY_STA TS, OID_802_3_PERMANENT_ADDRESS/OID_802_3_CURRENT_ADDRESS...) 具体的情况可以参看ddk下的 OID_802_3_CURRENT_ADDRESS条目 https://www.sodocs.net/doc/128175159.html,API-2得到MAC (MSDN推荐方法) #include //#include #include #include #include typedef struct _ASTA T_ { ADAPTER_STA TUS adapt; NAME_BUFFER NameBuff [30]; }ASTA T, * PASTA T; ASTA T Adapter; int main (void)

MAC地址查询

众所周知,mac地址电脑的唯一标识,就如同我们身份证一样。虽然mac地址用到的不多,但是各位有必要了解一下电脑mac地址查询方法,万一要用到了呢!本文我们就来为大家详解一下电脑mac地址查询两种方法。 公司在进行局域网管理时,都会用到mac地址。但是对非技术人员来说,电脑mac地址查询方法是怎样的呢,下面就随我们来瞧瞧吧。 电脑mac地址查询方法一:在“开始”菜单或者同时按下win+R快捷键打开“运行”窗口(图1),在运行窗口内输入“cmd”命令,点击确定之后就会出现“C:WINDOWSsystem32cmd.exe”程序框,然后在光标处输入ipconfig/all命令,敲击键盘上的enter键,这时候你就能看到有关网卡的全部信息,其中就包括电脑mac地址。以我们电脑为例,图中的physicaladdress 即是电脑的mac地址,为00-FF-45-F2-2A-D6。

电脑mac地址查询方法二:点击电脑桌面的“网上邻居”,点击鼠标右键,找到“属性”选项,单击打开,就能看到“网络连接”页面。双击本地连接,即会出现本地连接状态属性卡,单击“支持”,这时候你就会在连接状态内看到“默认网关”下方有“详细信息”(图3),单击进去,第一栏的实际地址即是电脑的mac地址(图4)。 Win7系统电脑mac地址查询方法介绍 上面我们主要是为大家介绍了xp系统中的电脑mac地址查询方法,那么Win7系统怎么查询呢。其实操作是很类似的,具体如下:单击电脑桌面上的“网络邻居”,打开之后就能看到左侧的“查看网络连接”点击进入,右键点击本地连接找到“状态”并打开,然后你就能看到同上述查询方法内一致的“本地连接状态”属性卡,单击详细信息,就可清楚的看到电脑的mac地址了。当然此外,你还可以利用在运行程度中输入cmd的方式进行查询。由此来看,不管winxp还是win7系统查询mac地址的方法都是很类似的。 大家是不是已经通过上面我们的介绍了解了电脑mac地址查询方法了呢,详细的步骤大家不妨立即就试一试,实用的技能轻松掌握!mac地址在我们日常的工作中还是会经常遇到的,我们建议大家最好将文章收藏起来,以后用的时候翻出来就能派上用场。

Win7通过注册表修改MAC地址方法

通过注册表修改MAC地址方法 第1步打开注册表编辑器 方法:1、单击电脑屏幕左下角“开始”按钮,找到”附件”,在”附件”中找到“运行”,键入“regedit”后回车,便可以调出注册表编辑器。 2、或者同时按Windows键和R键(WIN+R)打开运行对话框,然后键入“regedit”后回车,便可以调出注册表编辑器。“Windows键”一般情况就在Alt键的左边,上 面印有Windows图标的一个按键。 第2步 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972- E325-11CE- BFC1-08002BE10318}\0000、0001、0002 等主键下,查找 DriverDesc , 内容为要修改的网卡的描述。 如 Intel的网卡会被描述成“Intel(R) PRO/100+ Management Adapter”,3Com的网卡会被 描述成“3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)”等。 注:上面提到的关于网卡描述的选项出现的位置,和网卡本身以及操作系统有关。不同的网卡可能出现在不同的主键下,而同一网卡用不同版本的操作系统(如OEM版,VOL或者VLK 等)也会出现在不同的位置。而这一步的任务就是找到含有网卡描述的主键。 第3步 选中在第二步找到的主键,在右栏框中添加一个字符串,命名为“Network Address”, 其值设为要改的MAC地址,形式如“000B6AF6F4F9”。注:到这一步,修改网卡物理地址的任务可以说是完成了,有的网卡需要重启以下才能正常的工作。下面的几步是为了以后再修改物理地址方便用的。 第4步 在“第一步选中的主键”\Ndi\params下添加一项名为“NetworkAddress”的主键,此时一 般都会随着在右栏框中产生一个“(默认)”的字符串,将其值设置为最终想要修改的MAC地址,形式如 “000B6AF6F4F9”。如果没有此字符串,读者也可自行添加此字符串。注:此步骤就是为网卡设置一个初始MAC地址。 第5步 在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定“NetworkAddress”主键的描述,其值可自己命名,如“Network Address”,这样在网卡的高 级属性中就会出现“Network Address”选项,就是刚在注册表中加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。

利用MAC地址查找被盗笔记本电脑

利用MAC地址查找被盗笔记本电脑 随着现代社会经济的发展,涉及电脑被盗的案件也日益增多,由于电脑 体积小、移动性强、物理特征不明显等因素,给我们的侦查破案带来了不小的难度。下面简单介绍一下MAC地址在刑事侦查中的作用及方法。首先了解一什么是下MAC。通俗点说MAC就是电脑上网用的网卡, MAC 地址就是在媒体接入层上使用的地址,也就是网卡的物理地址。现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。每块网卡在生产出来后,除了基本的功能外,都有一个唯一的编号标识自己。全世界所有的网卡都有自己的唯一标号,是不会重复的。这个MAC地址是由48位2进制数组成的,通常分成6段,用16进制表示就是类似00-D0-09-A1-D7-B7的一串字符。 其次谈谈MAC在刑事侦查中的作用。由于网卡和身份证一样具有唯一性,所以我们就可以利用它来查找被盗电脑的线索,从技术上来说,只要被盗的电脑有在上网使用,就可以通过技术手段扫描到使用者的IP地址、电话及详细资料,然后按图索骥找到嫌疑人。 在明白了MAC的原理和作用后,我们来了解一下如何获取MAC的地址。 一、一般可以从电脑的外包装,装箱单,说明书,保修卡等上面找到MAC地址。

二、可以从电脑上找,有些会贴在电脑上,没贴的也能通过在运行中输入CMD到DOS状态输入IPCONFIG/ALL得到。但一般情况下事主都不会刻意的记录这个,而且如果电脑被盗后也无法查询。 三、现在的电脑用户绝大部分采用ADSL上网的,那么网络服务商就会给我们提供一个上网账号和密码。我们就可以用这个账号和密码通过服务商倒查出我们上网用的MAC地址。 四、现代家庭中很多人拥有2台以上电脑的,这样就需要使用路由器,在电脑使用的时候路由器会纪录下每台电脑的MAC地址。 五、虽然现在的电脑品牌机较多,但是生产和销售的厂家都会纪录下每台电脑的机器码、MAC地址等。我们就可以用购买时的发票等资料通过他们倒查出MAC的地址。 六、通过网监部门查找MAC地址。 与大家分享,希望尽快建立被盗抢电脑MAC地址库,并接入运营商查询接口。 具体的方法是:一般的手提电脑公司都有一个被盗系统,在电脑被盗后将该电脑的条形码提供给该电脑公司,电脑公司会将该条形码输入其公司全国联网的报警系统,嫌疑人如果带着电脑到售后去维修,在维修时会自动报警。从而可以找回该电脑,不过嫌疑人要是不去该电脑公司的每台电脑只要接入网络,必然会在网络提供商处留下记录,这个记录中

获取以太网卡的MAC地址(附源代码)

2、C#编程要点 Microsoft提供的WMI(Windows Management Instrumentation)中提供了一个Win32_NetworkAdapterConfiguration的类,定义了获取MAC地址的方法,因此只要构造一个定义为Win32_NetworkAdapter Configuration的WMI类,从中取出MAC地址的值即可。在C#中管理WMI主要使用ManagementClass类。编写程序过程要注意以下两个要点。 1)、命名空间的添加 由于System.Management的动态链接库不是C#中默认加载的,所以要添加System.Management的命名空间前要添加System.Management.dll链接库。依次选择:“项目”→“添加引用”→“.NET”菜单栏,加入System.Management。确认添加了动态链接库后添加命名空间: usingSystem.Management; 2)、MAC地址的获取 根据前面的介绍,要构造一个ManagementClass类管理定义为Win32_NetworkAdapter Configuration的WMI类,然后将ManagementClass类中的所有变量的值返回给属于ManagementObjectCollection类的变量,ManagementObjectCollection类用于表示WMI实例的不同集合,将不同集合中的各个MAC地址读出,就可获得多网卡的MAC地址。 构造ManagementClass,函数原型如下: public ManagementClass(string path); 参数:path表示WMI的路径。 要返回ManagementClass所有实例的集合,使用GetInstances(),函数原型如下: public ManagementObjectCollectionGetInstances(); 例如:获得本机上多网卡的MAC地址: ManagementClass mc; //定义一个ManagementClass类 //将ManagementClass类变量定义为Win32_NetworkAdapter Configuration,以便获得//网络信息 mc=new ManagementClass(” Win32_NetworkAdapterConfiguration”); //使用ManagementObjectCollection记录mc中的所有信息,包括多个网卡信息 ManagementObjectCollectionmoc=mc. GetInstances(); //取得ManagementObjectCollection中的不同网卡配置信息,判断如果该网卡可用就//去读取MAC地址 foreach(ManagementObjectmo in moc) { if(mo[“IPEnabled”].ToString()= =”True”) Console.WriteLine(”MAC address”+mo[“MacAddress”].ToString()); } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Management; namespace ConsoleApplication3

通过客户端ip获取mac地址

public class MacUtils { /** * 通过ip获取mac地址 * @param ipAddress 客户端ip * @return mac地址 */ public static String getMACAddressByIp(String ipAddress) { String str = "", macAddress = ""; try { Process pp = Runtime.getRuntime().exec("arp -a " + ipAddress); InputStreamReader ir = new InputStreamReader(pp.getInputStream(), "gbk"); BufferedReader br = new BufferedReader(ir); while ((str = br.readLine()) != null) { if (str.indexOf(ipAddress) > 1) { str = str.trim(); macAddress = str.substring(str.indexOf(" "), str.length()); macAddress = macAddress.trim(); macAddress = macAddress.substring(0,17); break; } } pp.destroy(); br.close(); ir.close(); } catch (Exception ex) { return "Can't Get MAC Address!"; }

怎样修改无线网卡mac地址

笔记本用户通常都是一个有线网卡,一个无线网卡的,有时会遇到绑定mac的情况,需要手动设置mac来伪装,上篇经验介绍了如何修改有线网卡的mac,但是对于绝大多数无线网卡,其驱动以及windows的支持并不把修改mac作为可行,所以需要略微复杂的设置。 本文将介绍如何设置,请先阅读全文,保证每步都看懂了,备份注册表后,再进行尝试,注册表修改要慎重,尤其是本次涉及windows的网络模块,很可能做错了导致启动异常,所以保证看懂了,会用了,再去尝试。 工具 一个正常带有注册表的windows,无线网卡,有线网卡 步骤 1. 在设备管理器-网络适配器-查看本机所有网卡名称 2. 运行regedit打开注册表 3. 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972- E325-11CE-BFC1-08002BE10318}\,并查看此下所有主键,一般都有十个左右的主键,由于我个人笔记本用的外接网卡比较多,所以多点主键。

4. 从0000起,鼠标选中,查看右侧,查看名称为DriverDesc的项目数据,看看是不是刚刚 在设备管理器中看到的网卡名称。看我的,我在0007中找到了自己的网卡broadcom,00 07主键中还有一项networkaddress,其值是我的mac,这是我的固定网卡,此处可以修改固定网卡mac。 5. 对比下0007/Ndi/params/主键下的内容,发现了吧,嘿嘿,完全对应windows的高级选项 卡中的所有选项,这样相信大家已经有了大概想法了。

6. 再按刚才的方法找无线网卡的主键,这是一块没处理过的网卡RTL8187,发现Ndi/params /下没有networkaddress主键,0009主键下也没有名称为networkaddress的项目名称,于是,我们想到了手动添加这些信息。 7. 拿我的主无线网卡为例(因为已经改过了)4954AGN,在0011主键右侧添加名称为Netw orkAddress的字符串,值设定为目标值。

MAC地址查询

各操作系统查询网卡MAC地址方法 MAC地址是网卡的物理地址,例如:00-19-21-C4-BA-DB。MAC地址就是网卡的身份证号码,具有全球唯一性。 Windows XP系统查询MAC地址方法: 点击桌面左下角的“开始”按钮——“运行”——输入cmd后点击“确定”(如图1)弹出一个窗口,输入ipconfig/all,然后回车(如图2)。有线网卡MAC:“Ethernet adapter 本地连接”中的“Physical Address”,Physical Address后面的内容就是有线网卡的MAC地址,例如图2中的MAC地址是00-19-21-C4-BA-DB;无线网卡MAC:“Ethernet adapter无线网络连接”中的“Physical Address”,Physical Address后面的内容就是无线网卡的MAC地址。 图1

图2 Windows VISTA、Windows 7系统查询MAC地址方法: 点击桌面左下角的“开始”按钮——在“所有程序”下有一个文本框,在里面输入cmd,然后按回车键打开一个窗口,在此窗口中输入ipconfig/all,按回车键,找到“以太网适配器本地连接”中的“物理地址”,物理地址后面是有线网卡的MAC地址;找到“无线局域网适配器无线网络连接”中的“物理地址”,物理地址后面就是无线网卡的MAC地址。 苹果系统查询MAC地址方法 点击桌面左上角的“苹果”图标,选择“系统偏好设置”,这时会打开一个窗口,点击“网络”,在打开的窗口中点击“以太网”——“高级”——“以太网”,找到“以太网ID”,以太网ID后面的内容就是有线网卡的MAC地址。点击取消回到之前的窗口,点击“Airport”——“高级”——“AirPort ID”,AirPort ID后面就是无线网卡的MAC地址。

修改网卡MAC地址两种方法:简单修改与注册表修改方法

如果您是通过网卡的物理地址进行访问网络的,那么一定会碰到需要修改物理地址的情况。如更换新网卡,网卡的物理地址重复或者让笔记本电脑临时登陆一下网络等情况。更改网卡MAC地址的文章网络中有很多,但大都说的不够详细,下面笔者试着以Windows XP操作系统为例介绍两种网卡MAC地址的修改方法,希望对大家有所帮助。 一,简单的修改方法 读者可以在桌面上的“网上邻居”图标上单击右键,选择“属性”,在弹出的“网络连接”的对话框中,在“本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏框中可以找到“值”这个选项就可以了),然后选中右栏框“值”中的上面一个单选项(非“不存在”),此时便可在右边的框中输入想改的网卡MAC地址,形式如“000B6AF6F4F9”。点击“确定”按钮,修改就完成了。 不过,有一些网卡没有这个选项,不要着急,可以先更新网卡的驱动程序试试,一般情况下,更新驱动之后都会出现这个选项。但是依然有特殊情况,无论怎么修改都没有这个选项,那怎么办呢?接着往下看,下面的方法可以说是万能的! 二,注册表修改方法 第1步,单击“开始”,选中“运行”,键入“regedit”调出注册表。 第2步,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E 325-11CE-BFC1-08002BE10318}\0000、0001、0002 等主键下,查找 DriverDesc ,

JAVA实现获取MAC地址

用纯JAVA语言编程读取MAC地址的实现 本文介绍如何在WindowXP/NT/2000环境中,编写纯Java程序,执行外部命令IPCONFIG,并通过分析该命令的输入流而获得本机的MAC地址的编程方法。 1 引言 用Java编写的程序,可以很方便地运行在各种平台的环境。但在实际的开发过程中,有时不得不涉及一些底层的编程。比如为了防止软件盗用,我们希望软件只能在指定计算机上运行,所以需要程序读取该机区分于其它计算机的硬件特征,如MAC地址等。作为一种跨平台语言,给Java语言提出了挑战。本文正是针对该问题,提出一种直接用纯Java语言,读去MAC地址的编程方法。 我们知道,在每一个Java应用程序中都存在着一个与其运行环境相联系的Runtime对象。该对象可执行外部命令、查可用内存等。而多数操作系统都提供有查询该机MAC地址的命令。如在Microsoft的操作系统中,命令IPCONFIG等。本文的思路是在程序中运行一个外部命令,将该命令的运行结果作为一个流(Stream),读取并分析之,进而实现获取MAC地址的目的。 2 Runtime类 在每一个Java 应用程序里面,都有惟一的一个Runtime 对象。通过这个Runtime 对象,应用程序可以与其运行环境发生相互作用。 一般不实例化一个Runtime对象。但是可以通过调用静态方法Runtime.getRuntime( )而获得对当前Runtime对象的引用。Runtime 类的大多数方法是实例方法。 Runtime 对象的作用主要有:执行外部命令;返回空闲内存;运行垃圾回收器;加载动态库等。 Applets和其他不可信赖的程序由于没有引起一个安全异常(SecurityException)而不能调用任何的Runtime方法。 下面的例子演示了怎样使用Runtime 对象运行一个外部命令。 以下是引用片段: : Process process = Runtime.getRuntime().exec("cmd.exe /c dir"); process.waitFor(); : Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的是等待子进程完成后再往下执行。

MAC地址查找、修改和路由器MAC地址过滤加密法

MAC地址查找、修改和路由器MAC地址过滤加密法 2007-12-15 15:05 MAC地址查找、修改和路由器MAC地址过滤加密法 MAC地址 MAC地址1212 MAC(Media Access Control, 介质访问控制)MAC地址是烧录在Network Interface Card(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位是由厂家自己分配.24-47位,叫做组织唯一标志符(oganizationally unique ,是识别LAN(局域网)节点的标识。其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM (一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。 也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。 形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。

如何获取本机的MAC? 对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。即可看到MAC地址。 在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址。 修改网卡MAC地址的方法 其实更改网卡MAC地址的功能不论98还是2000,都已经提供了,只是平时大家都没有注意到而以。下面我就说说怎么更改。很简单哦。。。 好了,现在先来看看WIN2000。在桌面上网上邻居图标上点右键,选"属性",在出来的"网络和拨号连接"窗口中一般有两个图标,一个是"新建连接"图标,一个是"我的连接"图标。如果你的机器上有两个网卡的话,那就有三个图标了。如果你只有一个网卡,那就在"我的连接"图标上点右键,选"属性",会出来一个"我的连接属性"的窗口。在图口上部有一个"连接时使用:"的标识,下面就是你机器上的网卡型号了。在下面有一个"配置"按钮,点击该按钮后就进入了网卡的属性对话框了,这个对话框中有五个属性页,点击第二项"高级"页,在"属性"标识下有两项:一个是"Link Speed/Duplex Mode",这是设置网卡工作速率的,我们需要改的是下面一个"Network Address",点击该项,在对话框右边的"值"标识下有两个单选项,默认得是"不存在" ,我们只要选中上面一个单选项,然后在右边的框中输入你想改的网卡MAC地址,点"确定",等待一会儿,网卡地址就改好了,你甚至不用停用网卡! 另外,你也可以在"设置管理器"中,打开网卡的属性页来修改,效果一样。 在98下面修改和WIN2000下差不多。在"网上邻居"图标上点右键,选择"属性",出来一个"网络"对话框,在"配置"框中,双击你要修改的网卡,出来一个网卡属性对话框。在"高级"选项中,也是点击"属性"标识下的"Network Address"项,在右边的两个单选项中选择上面一个,再在框中输入你要修改的网卡MAC地址,点"确定"后,系统会提示你重新启动。重新启动后,你的网卡地址就告修改成功!! 如果你想把网卡的MAC地址恢复原样,只要再次把"Network Address"项右边的单选项选择为下面一个"没有显示"再重新启动即可。在WIN2000下面是选择"不存在",当然也不用重新启动了。

取得系统中网卡MAC地址的三种方法

取得系统中网卡MAC地址的三种方法 第一种方法使用Microsoft的Netbios API。这是一套通过Winsock提供底层网络支持的命令。使用Netbios的最大缺点是您必须在系统中安装了Netbios 服务(如果您在windows网络中启用了文件共享的话,这就不是问题了)。除此此 外,这种方法又快又准确。 Netbios API只包括了一个函数,就叫做Netbios。这个函数使用网络控制块(network control block)结构作为参数,这个结构告诉函数要做什么。结构的定义如下: typedef struct _NCB { UCHAR ncb_command; UCHAR ncb_retcode; UCHAR ncb_lsn; UCHAR ncb_num; PUCHAR ncb_buffer; WORD ncb_length; UCHAR ncb_callname[NCBNAMSZ]; UCHAR ncb_name[NCBNAMSZ]; UCHAR ncb_rto; UCHAR ncb_sto; void (CALLBACK *ncb_post) (struct _NCB *); UCHAR ncb_lana_num; UCHAR ncb_cmd_cplt; #ifdef _WIN64 UCHAR ncb_reserve[18]; #else UCHAR ncb_reserve[10]; #endif HANDLE ncb_event; } NCB, *PNCB; 重点在于ncb_command 成员。这个成员告诉Netbios该作什么。我们使用三个命令来探测MAC地址。他们在MSDN的定义如下: 命令描述: NCBENUM Windows NT/2000: 列举系统中网卡的数量。使用此命令后,ncb_buffer 成员指向由LANA_ENUM结构填充的缓冲区。 NCBENUM 不是标准的 NetBIOS 3.0 命令。 NCBRESET 重置网卡。网卡在接受新的NCB命令之前必须重置。 NCBASTAT 接受本地或远程接口卡的状态。使用此命令后,ncb_buffer成员指向由ADAPTER_STATUS结构填充的缓冲区,随后是NAME_BUFFER结构的数组。

查看本机MAC地址的方法

查看本机MAC地址的方法 2010年01月21日星期四下午 04:37 1、通用方法:(对于笔记本等有多个网卡的电脑就必须用此方法,或者用MAC地址查看工具来查看!) 在Windows 2000/XP的计算机系统中: 依次单击“开始”→“运行”→输入“cmd”→回车,在出现的命令提示符界面中输“ipconfig /all”(注意“/”前有一空格)→回车,可以得到计算机的MAC地址。其中Physical Address就是计算机的MAC地址。请把显示的“本地连接”和“无线连接”的MAC地址(形如00-11-22-33-44-FF的6组2位字符)记下,到管理系统中填报。 在Windows 9X系列的计算机系统: 依次单击“开始”→“运行”→输入“winipcfg”→回车,出现的图形界面中适配器地址就是计算机的MAC 地址。 2、最方便查MAC地址的方法:(适用于台式机) 首先连接上网络,鼠标右击任务栏中托盘区中的网络连接图标(小电脑),点选“状态”→“支持”选项卡下的“详细信息”,其中的实际地址即为您网卡的MAC地址。 如果任务栏托盘区中没有网络连接图标,可到“控制面板”→“网络连接”→右击“本地连接”图标,点选“状态”→“支持”选项卡下的“详细信息”,其中的实际地址即为您当前上网网卡的MAC地址。 3、其他方法: 获取MAC地址还有另外一种较特别的方法,这种方法无须在命令行提示符下键入命令,无须牢记复杂的命令。只要鼠标轻点几下即可。方法是:鼠标依次点击“开始→所有程序→附件→系统工具→系统信息”在“系统摘要”下,展开“组件→网络→适配器”,右边的摘要中就会列出本机的MAC 地址。 MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一的。 附:MAC地址的作用 IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类浦Γ玫乩斫釳AC地址的作用。 无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address

获取以太网卡的MAC地址

获取以太网卡的MAC地址 【实验目的】 1、通过设计获取以太网卡物理地址的程序,初步掌握在应用层访问底层软硬件接口和属性的方法。 2、设计一个程序,使得能够获取本机安装的以太网卡的物理地址。 3、设计一个简单的应用程序,使得该程序只能在装有指定地址网卡的微机上运行。 【实验性质】 综合与设计性实验 【实验条件】 装有以胎网卡并配置网络协议的微机 【实验导读】 1、MAC地址MAC地址是每一个连接到LAN的端口或设备所需要的规范化的数据链 路层地址。MAC地址字长6B(注意也有2B的),由IEEE控制。在数据链路层,数据帧传输的寻址是依照网卡地址进行的。网卡地址可以采用局部地址或全局地址,以太网使用6B即48位的全局地址。对于共享型以太网,传输通过广播实现,各个网卡按照自己的物理地址接受属于自己的数据帧。而在交换式以太网,交换机通过逆向学习方式建立动态的MAC地址--端口映射表,根据该表进行数据帧的转发。当映射表中没有相应表项时再广播发送到各个端口。这种传输机制当然要求网卡MAC地址的唯一性。对一些应用程序来说,获取MAC地址有时是必要的。 【实验内容】 1、Linux编程要点 在Linux下编写获取本机网卡地址的程序,比较简单的方法是利用套接口(socket)和IO接口(ioctl)函数来获取网卡信息,需要引用如下文件: #include #include #include #include #include socket函数的原型是: int socket(int domain,int type, int protocol); 本函数有以下3个输入参数: domain参数:表示所使用的协议族; type参数:表示套接口的类型; protocol参数:表示所使用的协议族中某个特定的协议。 如果函数调用成功,套接口的描述符(非负整数)就作为函数的返回值,假如返回值为-1,就表明有错误发生。 利用socket函数来获取网卡MAC信息时,domain参数取值AF_INET,表示采用internet 协议族;type参数指定为SOCK_DGRAM,表示采用数据报类型套接口,protocol参数在这种组合下只有唯一选择,故用0填充。

XP如何修改Mac地址

XP如何修改Mac地址——图解教程 MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在网卡的BIOS里。MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D。虽然Mac地址是写在硬件上的,但是在XP中是可以修改的,本文将向您介绍在XP修改Mac地址的方法。 步骤或方法 1. 查看本机Mac地址 查看本机Mac地址的方法有很多,很多系统软件都可以查看Mac地址。 最简单的方法莫过于通过XP的命令行直接查看Mac地址,最简单,最 直接。打开Windows开始菜单 运行,在输入框中输入cmd后按下回车。 2. 运行ipconfig/all命令 上一步按下回车之后,在命令提示行处键入ipconfig/all,回车后显示如下屏幕,如果有多块网卡,会依次列出来,你可以通过名称判断哪个是你需要修改Mac地址的网卡。下图标注的就是Mac地址及查看Macdivided 命令。 3. 打开网络连接

通过开始菜单?所有链接?显示所有连接会打开一个窗口,这个窗口中包含你电脑上的所有连接,其中本地连接(LAN或高速Internet)就是上图标注的网卡,我们现在就是要修改这个网卡的Mac地址。在图标上点击右键,选中菜单中的属性。 4. 打开网卡配置 上一步操作的结果是如下图所示的屏幕,点击常规选项卡中的配置按钮,就打开了网卡配置,Mac地址就在这里修改。 5. 修改Mac Address值 上一步点击配置按钮后,显示如下窗口,在选项卡高级中,属性选项框中的第二项:“本地管理的地址”(XP系统是这个名字,其他系统可能不同,英文XP是Network Address)就是我们要修改的Mac地址了,默认情况下右侧的值是不存在,我们可以把需要修改的Mac地址填在上面的框中,用连续的16进制数填写,如001C257E5A6F,点击确定按钮保存。如果右侧没有可以填写Mac地址的地方,那么我们则只能通过修改注册表修改Mac地址了,请看下一步。

查看本机和局域网pc的MAC地址的常用方法

如何查看局域网内其他计算机的MAC地址和IP 方法1:首先要知道那个计算机的某个信息。如果知道计算机名的话,可以PING 计算机名,这样就会知道IP,然后再用 NBTSTAT -a IP,就能知道物理地址。如果知道IP的话,直接用nbtstat -a IP,就能知道所有的。 方法2:DOS命令批量统计局域网内各台电脑的IP地址和其相对应的MAC地址,这样的好处是可以便捷、准确的控制管理每台电脑,发现某台电脑中毒或者数据流量异常能及时排查、封网。 能实现这种功能的工具在网上有很多,例如:超级网管(SuperLANadmin)等等,喜欢的朋友可以自己搜索一下。在这里我主要谈的是调用本机DOS命令来实现上述结果,毕竟我们不可能天天把工具带在身边。 地址解析协议(ARP)用于实现IP地址到网络接口硬件地址的映射,该命令只有在安装了 TCP/IP 协议之后才可用。当某主机要向以太网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的以太网地址,ARP高速缓存是主机维护的一个IP地址到相应的以太网地址的映射表。如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据包被加入到输入到输出列队等待发送。如果查询失败,ARP会先保留等待发送的IP数据包,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再把IP数据包发送出去。 命令如下:运行cmd.exe后执行: for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i arp -a 回车,一只烟的功夫就会看到收集好列表。 (注意:把192.168.1 IP地址替换成你所在局域网的IP地址) FOR对一组文件逐一运行一条命令。该命令可用在批处理文件中,也可命令提示符下直接调用。 语法:FOR在批处理程序中的使用语法如下: FOR %%变量 IN (集合) DO 命令 [命令参数] FOR在命令提示符下的使用语法如下: FOR %变量 IN (集合) DO 命令 [ 参数: %%变量或%变量 代表一个可替换的变量。FOR命令将用指定的一组文件中的每一个文本字符串来替换%%变量(或%变量),直到此命令(在命令参数中指定的)处理完所有的文件为止。 用%%变量来执行一批处理程序中的FOR命令。用%变量来执行命令提示符下的FOR命令。 集合 指定一个或多个要用特定命令对其进行处理的文件或文本字符串。圆括号必须得有。 命令 指定要对一组文件中每一文件进行处理的命令。 FOR─注解 使用关键字IN及DO IN和DO并不是参数,但FOR命令中要求这两个关键字。如果省略了这两个关键字, 则MS-DOS将显示一错误信息。 使用可替代变量 除了数字0到9之外,你可把任何字符用作变量,以避免与批处理参数%0到%9的混淆。对简单的批处理程序来说,象%%F这样的一个单一字符就足够了。在复杂的批处理程序中,你可把多个值用于变量以区分不同的可替换变量。然而,在同一命令行上不能嵌套(增加)多个FOR命令。指定一组文件集参数可代表一组文件或几组文件。你可用通配符(*及?)来指定一文件集。下面是合法的文件集: (*.doc) (*.doc *.txt *.me) (jan*.doc jan*.rpt feb*.doc feb*.rpt) (ar??1991.* ap??1991.*) 当你使用FOR命令时,集中的第一个值将代替%%变量(或%变量),而为了处理此值MS-DOS将执行指定的命令;此过程一直持续进行,直到MS-DOS将对应于集中的值(或多值)的所有文件(或多组文件)处理完毕为止。FOR─例子

查询本机MAC地址和网络MAC地址的方法

查询网卡MAC地址的三种方法 对于熟悉电脑和网络的人来说,查询MAC地址是很简单的事情。但很多人是非相关专业出身,甚至是电脑小白,有时候不可避免会遇到想顺手帮忙却帮不上的尴尬场景。 本文介绍几种简单查看网卡MAC地址的方法,第一种是用鼠标点击查看,第二种是命令行查看本机MAC地址,第三种是命令行查看网络上部分其它IP的MAC地址: 一、鼠标查看本机IP和MAC地址: 1、鼠标右键点击右下角网络图标(无线图标,有线网卡则点有线 图标); 2、左键选择“打开网络和共享中心”,如图: 3、在弹出窗口中左键点击“更改适配器设置”,如图: 4、右键点击要查看的网卡,再左键选择“状态”,如图:

5、在弹出的状态窗口中左键选择“详细信息”,如图: 6、在弹出的详细信息窗口中就可以看到MAC地址(物理地址)了,如图:

二、命令行ipconfig命令查看本机MAC地址 1、同时按住“Win+R”键,弹出运行窗口,在“打开”后面的输入框中输入“cmd”命令,左键点击“确定”后弹出命令行窗口。如图: (注:Win键是Alt键旁边画着视窗符号的按键) 2、在命令行窗口中输入“ipconfig /all”(注意中间有个空格),然后回车,就可以查看本机所有网卡的MAC地址。如图: 回车之后显示的内容如下图,有几张网卡,就有几个MAC地址。

三、命令行arp命令查看本机所在网络中部分IP的MAC地址 1、同时按住“Win+R”键,弹出运行窗口,在“打开”后面的输入框中输入“cmd”命令,左键点击“确定”后弹出命令行窗口。(与第二条第一步相同) 2、在命令行窗口中输入“arp -a”(注意中间有个空格),然后回车,就可以查看本机所有网卡所接入的网络中部分IP所对应网卡的MAC地址。如图:

获取手机的mac地址的简单实现

获取手机的mac地址的简单实现 public static String getMacAddress(Context context) { // 获取mac地址: String macAddress = "000000000000"; try { WifiManager wifiMgr = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); WifiInfo info = (null == wifiMgr ? null : wifiMgr .getConnectionInfo()); if (null != info) { if (!TextUtils.isEmpty(info.getMacAddress())) macAddress = info.getMacAddress().replace(":", ""); else return macAddress; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace();

return macAddress; } return macAddress; } 注:添加权限 方法二: public String getLocalMacAddress() { WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); }

相关主题