分析IP地址(DDX)

2014-11-23 20:00:31 · 作者: · 浏览: 15

如果你编写Internet应用程序, 你需要校验用户进入的IP地址和确认它是正确的.

首先,我们需要在对话框的头文件里加入下面的函数声明:

#include

void WINAPI DDX_IPAddress(CDataExchange* pDX, int nIDC, UINT & value);

实现数据交换,你需要在你的对话框DoDataExchange函数里调用DDX_IPAddress函数。

现在,在对话框的实现文件中加入下列代码,不要忘记在项目设置中包含ws2_32.lib.

// DDX routine fo IP address translation

void WINAPI DDX_IPAddress(CDataExchange* pDX, int nIDC, UINT & value)

{

// from dialog to class

if( pDX->m_bSaveAndValidate)

{

CString Val;

BOOL bValid = true;

pDX->m_pDlgWnd->GetDlgItem(nIDC)->GetWindowText(Val);

for( int i = 0; i < Val.GetLength(); i++)

{

// lets check if all entered char in entered

// IP address are digits

if(Val[i] == .)

continue;

if(isdigit(Val[i]) == 0)

{

bValid = false;

break;

}

}

if(bValid)

{

value = inet_addr(Val);

if(value == INADDR_NONE)

{

pDX->m_pDlgWnd->MessageBox("The entered IP address is invalid.");