//修改IP地址
用到的头文件有#pragma comment(lib, "Iphlpapi.lib") #include <cfgmgr32.h>
UINT DhcpEnabled;
CString str,na,IP,AdapterName;
LPCTSTR lpszAdapterName;
//ULONG ulAdapterInfoSize = 9000;
ULONG ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO);
IP_ADAPTER_INFO *pAdapterInfoBkp, *pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];
if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_BUFFER_OVERFLOW ) // 缓冲区不够大
{
delete pAdapterInfo;
pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize];
pAdapterInfoBkp = pAdapterInfo;
}
if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_SUCCESS )
{
do{ // 遍历所有适配器
if(pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET) // 判断是否为以太网接口
{
CString des = pAdapterInfo->Description;// 是适配器描述
na = pAdapterInfo->AdapterName ;//是适配器名称
lpszAdapterName = LPCTSTR(na);
DhcpEnabled = pAdapterInfo->DhcpEnabled;//DHCP是否开启
IP = pAdapterInfo->IpAddressList.IpAddress.String;
if(IP != "0.0.0.0")
AdapterName = na;
}
pAdapterInfo = pAdapterInfo->Next;
}while(pAdapterInfo);
}
delete pAdapterInfoBkp;
//BOOL RegSetIP(LPCTSTR lpszAdapterName, LPCTSTR pIPAddress, LPCTSTR pNetMask, LPCTSTR pNetGate)
//{
CString pIPAddress="192.168.0.99";//IP地址
CString pNetMask="255.255.255.0";//子网掩码
CString pNetGate = "192.168.1.1";//网关
HKEY hKey;
//char * strKeyName1;`
LPSTR strKeyName1;
CString strKeyName = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";//注意写路劲时是反斜杠,不是斜杠
strKeyName += na;
strKeyName1 = (LPSTR)(LPCSTR)strKeyName;
long re = RegOpenKeyEx(HKEY_LOCAL_MACHINE, LPCTSTR(strKeyName), 0, KEY_WRITE, &hKey);
if(re != ERROR_SUCCESS)
return;
char mszIPAddress[100];
char mszNetMask[100];
char mszNetGate[100];
strncpy_s(mszIPAddress, pIPAddress, 98);
strncpy_s(mszNetMask, pNetMask, 98);
strncpy_s(mszNetGate, pNetGate, 98);
int nIP, nMask, nGate;