[ Windows C言語 ] IP アドレスの追加と削除 ( AddIPAddress, DeleteIPAddress )

Pocket

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

参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *