分享

SetAdapterInfo.rar SetAdapterInfo.cpp

 QomoIT 2017-09-19
  • iphlpapi动态库中的隐藏的GetAdaptersInfo函数和SetAdapterIpAddress函数对主机的ip、mask和gateway进行设置
  • // SetAdapterInfo.cpp : Defines the entry point for the console application.   
  • //   
  •    
  • #include "stdafx.h"   
  • #include <windows.h>   
  • #include <Iptypes.h>   
  •    
  • #pragma comment(lib,"Ws2_32.lib");   
  •    
  •    
  • typedef DWORD (WINAPI * pfnGetAdaptersInfo)(PIP_ADAPTER_INFO pAdapterInfo,PULONG pOutBufLen);   
  • typedef DWORD (WINAPI * pfnSetAdapterIpAddress)(char * pszAdapGUID,DWORD dwDHCP,DWORD dwIp,DWORD dwMask,DWORD dwGateway);   
  •    
  • int _tmain(int argc, _TCHAR* argv[])   
  • {   
  •     HINSTANCE hInstance;   
  •     pfnSetAdapterIpAddress SetAdapterIpAddress;   
  •     pfnGetAdaptersInfo GetAdaptersInfo;   
  •     IP_ADAPTER_INFO ipAdapterInfo;   
  •     ULONG ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO);   
  •     if((hInstance=LoadLibrary(_T("iphlpapi")))==NULL)   
  •     {   
  •         printf("dll load failed.\n");   
  •         return -1;   
  •     }   
  •     if((GetAdaptersInfo = (pfnGetAdaptersInfo)GetProcAddress(hInstance, "GetAdaptersInfo")) == NULL)   
  •     {   
  •         printf("get dll procedure failed.\n");   
  •         FreeLibrary(hInstance);   
  •         return -2;   
  •     }   
  •     if((GetAdaptersInfo)(&ipAdapterInfo,&ulAdapterInfoSize)!=NO_ERROR )   
  •     {   
  •         printf("get network adapter information failed.\n");   
  •         return -3;   
  •     }   
  •     if((SetAdapterIpAddress = (pfnSetAdapterIpAddress)GetProcAddress(hInstance, "SetAdapterIpAddress")) == NULL)   
  •     {   
  •         printf("get dll procedure failed.\n");   
  •         FreeLibrary(hInstance);   
  •         return -4;   
  •     }   
  •     if((SetAdapterIpAddress)(ipAdapterInfo.AdapterName,1,0,0,0)==ERROR_SUCCESS)   
  •     {   
  •         printf("Set Ip config to dhcp succeeded.\n");   
  •     }   
  •     else   
  •     {   
  •         printf("Set Ip config to dhcp failed.\n");   
  •     }   
  •        
  •     printf("Do you want to config static ip address?");   
  •     char flag;   
  •     scanf("%c",&flag);   
  •     if(flag=='y' || flag=='Y')   
  •     {   
  •         if((SetAdapterIpAddress)(ipAdapterInfo.AdapterName,0,inet_addr("192.168.0.123"),inet_addr("255.255.255.0"),inet_addr("192.168.0.1"))==ERROR_SUCCESS)   
  •         {   
  •             printf("Set Ip config to static ip address succeeded.\n");   
  •         }   
  •         else   
  •         {   
  •             printf("Set Ip config to static ip address failed.\n");   
  •         }   
  •     }   
  •    
  •     FreeLibrary(hInstance);   
  •     return 0;   
  • }   
    • 本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多