把"00:90:8A:1D:30:51"转换成"00-90-8A-1D-30-51",如何格式错误,显示出格式错误的种类,有些不规范的转换成规范的格式,例如,"1234:8F:90-D1:76",为不规范格式转换成

标准格式。

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std; void getStandardMac(char str[],char s[])
{
int count=0;
int temp=0;
int pre=1;
char c;
for(int i=0;i<strlen(str);i++) //判断字符数是否为6字节
{
if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='F')
{
count++;
}
}
if(count!=12)
{
cout<<"mac is not 6 字节"<<endl;
exit(0);
}
for(int j=0;j<strlen(str);j++)
{
if((pre-temp)%2!=0||(pre-temp)==0) //判断分隔符之间的字符是否为偶数
{
temp=pre;
if(str[j]==':'||str[j]=='-')
{
if(j>2&&(j-pre)==1)
{
cout<<"出现了两个连续字符."<<endl;
exit(0);
}
pre=j;
}
}
else
{
cout<<"分隔符之间的字符数不为偶数"<<endl;
exit(0);
}
}
temp=0;
for(int k=0;k<strlen(str);k++)
{ if(temp==2||temp==5||temp==8||temp==11||temp==14)
{
s[temp++]='-';
k--;
}
else if(str[k]>='0'&&str[k]<='9'||str[k]>='A'&&str[k]<='F')
{
s[temp++]=str[k];
}
else
continue; }
s[temp]='\0';
}
int main()
{
char str[256];
char s[256];
cin>>str;
cout<<"原mac地址为:"<<str<<endl;
getStandardMac(str,s);
cout<<"mac标准地址为:"<<endl;
cout<<s<<endl;
return 0;
}

把mac地址转换为标准mac地址的更多相关文章

  1. 转换为标准IPv4格式

    Insus.NET刚写了一个函数,把一个IP地址转换为标准格式,即每段位均是由3个数字组成. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = ...

  2. 解析私有IP地址和公网IP地址

    局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...

  3. 我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网

    我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网   房东给的IP地址是:192.168.1.5 255.255.255.0 192.168.1.1 2 ...

  4. 为什么既要有IP地址还要有MAC地址

    在脑海中一直有个疑问,在网络上发送信息的时候为什么既要有IP地址还要有MAC地址,IP是唯一的,MAC地址也是唯一的,用一个难道不行么? 既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么 ...

  5. Mac通过域名查询IP地址

    Mac通过域名查询IP地址 方法一:使用Mac自带的"网络实用工具" 步骤: 搜索"网络使用工具",并打开: 点击LookUp,输入互联网地址,点击Lookup ...

  6. Linux 下PHP获取服务器状态CPU、MEM使用率、磁盘使用率、IP地址获取、MAC地址获取等信息记录

    获取服务器状态记录使用的是SHELL命令方式进行获取输出结果  然后进行字符串拆分处理等方式进行获取到自己有用信息 贴出获取方式以及常用处理方式 <?PHP $fp = popen('执行SHE ...

  7. macOS下利用dSYM文件将crash文件中的内存地址转换为可读符号

    一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应 ...

  8. IP地址转换为Int

    1.转换类 import com.google.common.base.Strings; import java.security.InvalidParameterException; import ...

  9. python实现IP地址转换为32位二进制

    python实现IP地址转换为32位二进制 #!/usr/bin/env python # -*- coding:utf-8 -*- class IpAddrConverter(object): de ...

随机推荐

  1. 模块讲解----configparser模块(my.cnf配置文件操作)

    查询 1.所有节点: 2.指定节点下的所有key和values: 3.指定节点下所有的key: 4.指定节点和key下的values: # #configparser用于处理特定格式的文件,其本质上是 ...

  2. Django组件补充(缓存,信号,序列化)

    Django组件补充(缓存,信号,序列化) Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑 ...

  3. The adidas NMD Singapore is one of the brands top selling

    Like pointed out, we've two adidas NMD Singapore releases using the first arriving Blue and Black as ...

  4. eclipse引入httpServlet源码

    eclipse引入httpServlet源码 展开Apache Tomcat v7.0[Apache Tomcat v7.0] -> servlet-api.jar 找到 -> http ...

  5. BabelMap 10.0.0.3 汉化版已经发布

    新的 BabelMap 在日前发布. 新版本增加了字符书签的管理功能,以及将窗口最小化到系统通知栏(时钟区域)的功能. 请点击主页左上角进入下载页面下载.

  6. 聊一聊PV和并发、以及计算web服务器的数量的方法(转)

    转自:http://www.chinaz.com/web/2016/0817/567752.shtml 最近和几个朋友,聊到并发和服务器的压力问题.很多朋友,不知道该怎么去计算并发?部署多少台服务器才 ...

  7. JavaScript 预编译(变量提升和函数提升的原理)

    本文部分内容转自https://www.cnblogs.com/CBDoctor/p/3745246.html 1.变量提升 console.log(global); // undefined var ...

  8. (转载)找圆算法((HoughCircles)总结与优化

      Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle与一般的拟合圆算法比起来,各有优势:优势:HoughCircle对噪声点不怎么敏感,并且可以在同一个图中找出多个圆 ...

  9. 20145312《网络对抗》Exp4 恶意代码分析

    20145312<网络对抗>Exp4 恶意代码分析 问题回答 1.总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,开放端口,程序服务还 ...

  10. Linux内核分析07

    可执行程序的装载 一,预处理.编译.链接和目标文件的格式 可执行程序是怎么来的? 预处理  把include里的宏定义替换 做字符串处理. efl格式? 目标文件格式,Windows中用PE Linu ...