从字符串获得MAC地址的方法

今日有感于编程水平下降,特意练习一下,根据MAC地址字符串,获取MAC地址的2种方法。

#include <stdio.h>

void func1(char *str)
{
unsigned char mac[6] = {0};

sscanf(str, "%2x:%2x:%2x:%2x:%2x:%2x", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]);

printf("func:%s output: mac=%02x:%02x:%02x:%02x:%02x:%02x \n", __FUNCTION__, mac[0], mac[1], mac[2],mac[3], mac[4],mac[5]);

return ;
}

int getvalue(char c)
{
if(( c >= ‘0‘ ) && ( c <= ‘9‘))
return c - ‘0‘;
else if(( c >= ‘a‘ ) && ( c <= ‘f‘))
return c - ‘a‘ + 10;
else if(( c >= ‘A‘) && ( c <= ‘F‘))
return c - ‘A‘ + 10;
else
return 0;
}

void func2(char *str)
{
/*0f:e2:11:ab:cd:03*/

int i;
unsigned char low;
unsigned char high;
unsigned char mac[6] = {0};

for(i=0; i<6; i++)
{
high = getvalue(str[i*3]);
low = getvalue(str[i*3 + 1]);

mac[i] = (high<<4)+ low;
}

printf("func:%s output: mac=%02x:%02x:%02x:%02x:%02x:%02x \n", __FUNCTION__, mac[0], mac[1], mac[2],mac[3], mac[4],mac[5]);
}

int main(int argc, char** argv) {
func1(argv[1]);
func2(argv[1]);
return 0;
}

运行结果:可见两种方法得到的结果相同

时间: 2024-08-24 23:56:16

从字符串获得MAC地址的方法的相关文章

用派克斯出现651 查看&修改mac地址的方法

1.winxp查看mac地址的方法 2.winxp修改mac地址的方法 电脑MAC地址是网卡适配器在出厂时就已经被固定了的,也叫物理地址,每块网卡适配器有全球唯一的MAC地址,一般情况是不需要修改MAC地址的,但有些特殊情况需要更改MAC地址来实现一些特殊的要求,修改之前大家先知道如何查看 第一种方法 1.在开始菜单栏选择"运行" 2.在运行中输入"cmd" 3.我们会看到有一个黑色窗口弹出,在里边输入"ipconfig /all"然后按回车键

几种C#程序读取MAC地址的方法

以下是收集的几种C#程序读取MAC地址的方法,示例中是读取所有网卡的MAC地址,如果仅需要读取其中一个,稍作修改即可. 1 通过IPConfig命令读取MAC地址 ///<summary>/// 根据截取ipconfig /all命令的输出流获取网卡Mac///</summary>///<returns></returns>publicstatic List<string> GetMacByIPConfig(){  List<string&

Android 获取WIFI MAC地址的方法

1. 经常用法,调用Android的API:WifiManager <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo

java获取本机IP地址和MAC地址的方法

// 获取ip地址 public static String getIpAddress() { try { Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (Netw

VMware 虚拟机修改MAC地址的方法

VMware VM所使用的OUI 按照VMware ESX 3的[Server Configuration Guide ]的说法,VMware的使用下面的三个OUI作为VM的MAC地址: 00:0C:29 – 用于自动生成的MAC地址 00:50:56 – 用于手动设置的MAC地址 但是在实际应用上,我发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址: 00:50:56:00:00:00 – 00:50:56:3F:FF:FF这一段MAC地址可以用于手动设置的MAC地址 0

修改电脑MAC地址的方法

Ubuntu或Mac OSX下修改方法: 打开终端(Ubuntu快捷键Ctrl+Alt+T),运行如下命令: sudo ifconfig eth0 down sudo ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx sudo ifconfig eth0 up 说明:"eth0"表示网卡的接口,输入sudo ifconfig可查看网卡信息,Ubuntu在"连接信息"里查看"活动的网络连接"也可得到该接口的信息,Ma

BLE获取iphone mac地址的方法--【sky原创】

本人用的BLE是TIcc2541,1.3.2协议栈 1.首先要说明的是,iphone手机将信息保护了,BLE设备读到的iphone地址是随机的,每次连接都会不同 2.下面我就具体说明如何查看手机的mac地址 首先我的程序是作为从机的,从机配好开始广播,事件SBP_START_DEVICE_EVT ---> GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs ); 然后进入peripheral.c中的GAPRole_ProcessEv

Win 及 Linux 查找mac地址的方法

1. Windows系统中 - 调出cmd命令行 - 运行Getmac命令.命令行中输入: getmac /v /fo list 并按下回车键 - 查找物理地址.这是MAC地址的另一种描述方式.因为在输出结果中通常会显示多条相关的信息,所以查找时请注意找到的信息是否为你所要找的网络适配器的物理地址.例如,无线网络连接的MAC地址和有线网络连接的地址是不同的. 2. Linux系统 - 打开shell - 输入ifconfig -a,然后按下回车.如果访问被拒绝,输入sudo ifconfig -

python获取mac地址的方法

方法一: 借助uuid模块 def get_mac_address(): import uuid      node = uuid.getnode()      mac = uuid.UUID(int = node).hex[-12:] return mac 方法二: 按操作系统平台来: def get_mac_address():    '''    @summary: return the MAC address of the computer    '''    import sys