因为是MFC,所以发出来的代码很乱,要程序代码就可以留下你的信箱,我发给你.
更多源代码:http://hi.baidu.com/sys/checkuser/CIW%5FBLUE/3
代码如下:
#include "stdafx.h"
#include "IPModify.h"
#include "IPModifyDlg.h"
#include "AddIP.h"
#include "ModifyIP.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
const int MAX_CLASSNAME_LENGHT = 20;
const int MAX_IP_FIELD_NUM = 5;
void ReadIPInfo();
void SetIPInfoToIPList(CListCtrl* pList, stIPInfo& stIPInfo);
vector<stIPInfo> cIPInfoVec;
void SetIPInfoToIPList(CListCtrl* pList, stIPInfo& stIPInfo);
CListCtrl *pIPList = NULL;
void SwapDWORD(DWORD pValue[], int n)
{
for(int i = 0; i < n; i++)
{
DWORD dwTemp = 0;
unsigned char *pIP = (unsigned char*)&pValue[i], *pTemp = (unsigned char*)&dwTemp;
*(pTemp) = *(pIP + 3);
*(pTemp + 1) = *(pIP + 2);
*(pTemp + 2) = *(pIP + 1);
*(pTemp + 3) = *(pIP );
pValue[i] = dwTemp;
}
}
void ReadIPInfo()
{
CloseHandle(CreateFile("IpInfo.CIW", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_NEW, NULL, NULL));
CFile cInFile("IpInfo.CIW", CFile::modeRead);
stIPInfo stIPInfo1;
while(1)
{
memset((char*)&stIPInfo1, 0, sizeof(stIPInfo));
cInFile.Read((char*)&stIPInfo1, sizeof(stIPInfo));
if( strcmp(stIPInfo1.szClassName, "") == 0 )
break;
cIPInfoVec.push_back(stIPInfo1);
SetIPInfoToIPList(pIPList, stIPInfo1);
}
cInFile.Close();
}
void WriteIPInfo()
{
DeleteFile("IpInfo.CIW");
ofstream cOutFile("IpInfo.CIW");
for(vector<stIPInfo>::iterator iter = cIPInfoVec.begin(); iter != cIPInfoVec.end();
iter++ )
{
cOutFile.write((char*)iter, sizeof(stIPInfo));
}
cOutFile.close();
}
void IPToString(DWORD dwIP, char *szIP)
{
unsigned char *pIP = (unsigned char*)&dwIP;
sprintf(szIP, "%u.%u.%u.%u", *pIP, *(pIP + 1), *(pIP + 2), *(pIP + 3) );
}
更多源代码:http://hi.baidu.com/sys/checkuser/CIW%5FBLUE/3
代码如下:
#include "stdafx.h"
#include "IPModify.h"
#include "IPModifyDlg.h"
#include "AddIP.h"
#include "ModifyIP.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
const int MAX_CLASSNAME_LENGHT = 20;
const int MAX_IP_FIELD_NUM = 5;
void ReadIPInfo();
void SetIPInfoToIPList(CListCtrl* pList, stIPInfo& stIPInfo);
vector<stIPInfo> cIPInfoVec;
void SetIPInfoToIPList(CListCtrl* pList, stIPInfo& stIPInfo);
CListCtrl *pIPList = NULL;
void SwapDWORD(DWORD pValue[], int n)
{
for(int i = 0; i < n; i++)
{
DWORD dwTemp = 0;
unsigned char *pIP = (unsigned char*)&pValue[i], *pTemp = (unsigned char*)&dwTemp;
*(pTemp) = *(pIP + 3);
*(pTemp + 1) = *(pIP + 2);
*(pTemp + 2) = *(pIP + 1);
*(pTemp + 3) = *(pIP );
pValue[i] = dwTemp;
}
}
void ReadIPInfo()
{
CloseHandle(CreateFile("IpInfo.CIW", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_NEW, NULL, NULL));
CFile cInFile("IpInfo.CIW", CFile::modeRead);
stIPInfo stIPInfo1;
while(1)
{
memset((char*)&stIPInfo1, 0, sizeof(stIPInfo));
cInFile.Read((char*)&stIPInfo1, sizeof(stIPInfo));
if( strcmp(stIPInfo1.szClassName, "") == 0 )
break;
cIPInfoVec.push_back(stIPInfo1);
SetIPInfoToIPList(pIPList, stIPInfo1);
}
cInFile.Close();
}
void WriteIPInfo()
{
DeleteFile("IpInfo.CIW");
ofstream cOutFile("IpInfo.CIW");
for(vector<stIPInfo>::iterator iter = cIPInfoVec.begin(); iter != cIPInfoVec.end();
iter++ )
{
cOutFile.write((char*)iter, sizeof(stIPInfo));
}
cOutFile.close();
}
void IPToString(DWORD dwIP, char *szIP)
{
unsigned char *pIP = (unsigned char*)&dwIP;
sprintf(szIP, "%u.%u.%u.%u", *pIP, *(pIP + 1), *(pIP + 2), *(pIP + 3) );
}