GetInterfaceInfo

ネットワークインターフェース情報を取得するには、IPヘルパーAPI(iphlpapi.lib)を使う・・・。
GetInterfaceInfoは、ネットワークインターフェースを取得する・・・。

GetInterfaceInfo function (Windows)

といっても、これはインタフェースの名前とインデックスしか取れない・・・。
(しかも、ipconfigやデバイスマネージャなどで表示されるような名前ではない・・・。てか、どこでみれるんだ・・・。)

f:id:BG1:20170313171131p:plain

コンソールの、

f:id:BG1:20170313171143p:plain

空で、

f:id:BG1:20170313171153p:plain

iphlpapi.libをリンク・・・。

まず、第1引数をNULLにして、GetInterfaceInfoを呼ぶことで、インターフェース情報のサイズをdwOutBufLenに格納させる・・・。

そのあと、newでIP_INTERFACE_INFO構造体の分のメモリを確保し、もう一度GetInterfaceInfoを呼んで取得・・・。

一覧をfor文で出力したら、deleteでメモリを解放・・・。

pIpInterfaceInfo->Adapter[0].Index = 11, pIpInterfaceInfo->Adapter[0].Name = \DE
VICE\TCPIP_{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
続行するには何かキーを押してください . . .

Win7VMで実行したら、数字は伏せたけど、1個だけ出てきた・・・。
しかし、デバイスマネージャみてもipconfigみてもこの名前はないのでよくわからん・・・。

Sample/winapi/GetInterfaceInfo/GetInterfaceInfo/src/GetInterfaceInfo at master · bg1bgst333/Sample · GitHub