其功能是将MAC地址中插入"FF-FE-",并将第2位取反.
如将00-12-79-00-0A-B3变为
FE80::0212:79FF:FE00:0AB3
BOOL CGetMacV6Dlg::GetIPv6Addr(CString sMacAddr, CString& sIpv6Addr)
{
CString str = sMacAddr;
CString sMid = _T("");
int temp = 0;
char* cTemp;
str.Insert(9, _T("FF-FE-"));
char ch = str.GetAt(1);
temp = (int)strtol(&ch, &cTemp, 16);
temp ^= 0x02;
sMid.Format("%2X",temp);
ch = sMid.GetAt(1);
str.SetAt(1,ch);
str.MakeUpper();
str.Replace(_T("-"), _T(":"));
str.Insert(0, _T("FE80::"));
sIpv6Addr = str;
return TRUE;
}
现在的问题是,该函数结果正常,不过我觉得代码写得质量一点也不高,刚开始用VC,
测试人员说,测出过如将00-12-79-00-0A-B3变为
FE80::0512:79FF:FE00:0AB3的情况,不知道,有没有可能发生.
因为不能确定是否是这个函数的原因.
谢谢大家了.
如将00-12-79-00-0A-B3变为
FE80::0212:79FF:FE00:0AB3
==你的这段代码并不能完成你所说的工作阿
看不懂。
其功能是将MAC地址中插入"FF-FE-",并将第2位取反.
如将00-12-79-00-0A-B3变为
FE80::0212:79FF:FE00:0AB3
没看懂
00-12-79-00-0A-B3变为
FE80::0512:79FF:FE00:0AB3
?