1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
//
// bjMACAddr.h
// TestTB
//
// Created by Terrin Eager on 3/23/13.
//
//
#ifndef __TestTB__bjMACAddr__
#define __TestTB__bjMACAddr__
#include <iostream>
#include <sys/socket.h>
#include "bjtypes.h"
class BJMACAddr
{
public:
BJMACAddr() { memset(addr,0,sizeof(addr));};
BJMACAddr(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); };
void operator=(const BJMACAddr& Src) { memcpy(addr,Src.addr,sizeof(addr)); };
void Set(unsigned char* newAddr) {memcpy(addr,newAddr,sizeof(addr));};
void SetString(char* newAddrString)
{
int newAddr[6] = {0,0,0,0,0,0};
sscanf(newAddrString, "%02X:%02X:%02X:%02X:%02X:%02X", &newAddr[0],&newAddr[1],&newAddr[2],&newAddr[3],&newAddr[4],&newAddr[5]);
for (int i=0; i< 6; i++)
addr[i] = newAddr[i];
};
unsigned char* Get() {return addr;};
void CopyVendor(BJMACAddr& src) { memset(addr,0,sizeof(addr)); memcpy(addr,src.addr,4);}; // 3 is standar vendor But 4 is better with apple products
char* GetString() {sprintf(buffer,"%02X:%02X:%02X:%02X:%02X:%02X", addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); return buffer;};
char* GetStringVendor() {sprintf(buffer,"%02X:%02X:%02X", addr[0],addr[1],addr[2]); return buffer;};
BJ_COMPARE Compare(BJMACAddr* compareAddr)
{
int result = memcmp(addr, compareAddr->addr, sizeof(addr));
if (result > 0)
return BJ_GT;
if (result < 0)
return BJ_LT;
return BJ_EQUAL;
};
bool IsEmpty() { return (addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]) == 0;};
private:
unsigned char addr[6];
char buffer[25];
};
#endif /* defined(__TestTB__bjMACAddr__) */
|