2012-03-06 3 views
0

私はMACアドレスを取得する必要がある私のcppプログラムをコンパイルするためにmingwを使用しています。 Unixでは、sys/ioctl.h はそれを読むために 'SIOCGIFHWADDR'を提供します。しかし、mingw win32では、ioctlsocketという名前のioctlの代わりがあります。私はそれを使用していますが、 'SIOCGIFHWADDR'コマンドはありません。ioctlsocket for mingw

ioctlsocketを使用してハードウェアMACアドレスを読み取るにはどうすればよいですか?

ありがとうございます。続き

はあなたのためのローカルMACアドレスを取得する別のWindowsのAPIの一握りがありますが、私は

ioctl(fd, SIOCGIFHWADDR, &ifr); //Unix it works 
ioctlsocket(fd, SIOCGIFHWADDR, &ifr); //win32, doesn't work 
+0

あなたが「動作しない」とはどういう意味ですか? –

答えて

0

を使用しています機能です。

GetAdaptersAddressesが適しています。 (IP_ADAPTER_ADDRESSESの返されたセットでPhysicalAdddressメンバーを見てください。

をあなたはまたGetIfTableを使用してMIB_IFROWの構造体の返されるセットにbPhysAddrメンバーを見ることができます。