ここでは、Windows でエイリアス IP アドレスの追加と削除を行うサンプルコードを掲載してます。
スポンサーリンク
IPアドレスの追加と削除
//#include <stdio.h> //#include <stdlib.h> //#include <winsock2.h> //#include <ws2tcpip.h> //#include <iphlpapi.h> /* for IP Helper API */ //#include <limits.h> //#include <ws2tcpip.h> //#pragma comment(lib, "ws2_32.lib") //#pragma comment(lib, "iphlpapi.lib") DWORD ifindex = XXXX; // 追加するアダプタのインデックス struct in_addr addIPaddr; struct in_addr addMask; addIPaddr.s_addr = inet_addr("10.66.34.35"); // 追加するIPアドレス addMask.s_addr = inet_addr("255.255.0.0"); // 追加するIPアドレスのサブネットマスク ULONG context, instance; int ret; // エイリアスIPアドレスの追加 if ((ret = AddIPAddress(addIPaddr.s_addr, addMask.s_addr, ifindex, &context, &instance) ) != NO_ERROR) { printf("IP address added failed with error: %d.\n", ret); return -1; } /* * この位置でデバッガで止めたりスリープさせ、ipconfigコマンドで * IP アドレスが追加されていることを確認可能 */ // エイリアスIPアドレスの削除 if ((ret = DeleteIPAddress(context)) != NO_ERROR) { printf("DeleteIPAddress failed with error: %d.\n", ret); return -1; }
※ 追加したエイリアス IP アドレスは OS の再起動によっても削除されます