雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

怎么通過(guò)C語(yǔ)言自動(dòng)生成MAC地址

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

最近在做虛擬機(jī)項(xiàng)目時(shí),需要給創(chuàng)建的每一個(gè)虛擬機(jī)自動(dòng)生成一個(gè)MAC地址,由于MAC地址為48位,而且格式是以:隔開(kāi)的,所以下面我寫(xiě)了一個(gè)c程序,來(lái)自動(dòng)生成MAC地址。

復(fù)制代碼 代碼如下:

//   MAC.c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>

#define RANDOM(x) (rand()%x)
#define MAC_ADDR_LENGTH 12
#define FMT_MAC_ADDR_LEN (MAC_ADDR_LENGTH+5)

unsigned char HEXCHAR[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C',
'D','E','F'};
unsigned char genMACAddr[MAC_ADDR_LENGTH];
unsigned char fmtMACAddr[FMT_MAC_ADDR_LEN]={'0','0','-','0','0','-','0','0','-',
'0','0','-','0','0','-','0','0'};
void formatMACAddr()
{
  unsigned short i=0;
  unsigned short n=0;
  for(i=0;i<MAC_ADDR_LENGTH;i++,n++)
  {
    if(fmtMACAddr[n]!='-')
    {
      fmtMACAddr[n]=genMACAddr[i];
    }
    else
    {
      n++;
      fmtMACAddr[n]=genMACAddr[i];
    }
  }
}

void main()
{
  unsigned short i=0;
  unsigned short n=0;
  srand(getpid());
  for(int i=0;i<MAC_ADDR_LENGTH;i++)
  {
    n=RANDOM(16);
    genMACAddr[i]=HEXCHAR[n];
  }
  formatMACAddr();
  printf("%s",fmtMACAddr);
}

上一篇:static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解

欄    目:C語(yǔ)言

下一篇:c語(yǔ)言常見(jiàn)圖片格式判斷實(shí)例

本文標(biāo)題:怎么通過(guò)C語(yǔ)言自動(dòng)生成MAC地址

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/4105.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有