コマンドラインからMACアドレスを取得したいので、文字列として取得しました...「00:0d:3f:cd:02:5f」のようなこの17バイトのMAC文字列をCの6バイトのMACアドレスに変換するにはどうすればよいですか?
23363 次
2 に答える
25
C99準拠の実装では、これは機能するはずです
unsigned char mac[6];
sscanf(macStr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]);
それ以外の場合は、次のものが必要になります。
unsigned int iMac[6];
unsigned char mac[6];
int i;
sscanf(macStr, "%x:%x:%x:%x:%x:%x", &iMac[0], &iMac[1], &iMac[2], &iMac[3], &iMac[4], &iMac[5]);
for(i=0;i<6;i++)
mac[i] = (unsigned char)iMac[i];
于 2012-10-07T20:44:08.690 に答える