ここでは、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 の再起動によっても削除されます