📄 filtersetdlg1.cpp
字号:
// FilterSetDlg1.cpp : implementation file
//
#include "stdafx.h"
#include "Netcap.h"
#include "FilterSetDlg1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFilterSetDlg1 dialog
CFilterSetDlg1::CFilterSetDlg1(CWnd* pParent /*=NULL*/)
: CDialog(CFilterSetDlg1::IDD, pParent)
{
m_strDestIP=_T("*");
m_strSrcIP=_T("*");
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_llSrcIPFilter=0xFFFFFFFFF;
m_llDestIPFilter=0xFFFFFFFFF;
}
void CFilterSetDlg1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFilterSetDlg1)
DDX_Text(pDX, IDC_DEST_IP,m_strDestIP);
DDX_Text(pDX, IDC_SRC_IP, m_strSrcIP);
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFilterSetDlg1, CDialog)
//{{AFX_MSG_MAP(CFilterSetDlg1)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFilterSetDlg1 message handlers
void CFilterSetDlg1::OnOK()
{
UpdateData();
if(!IsValidIP (m_strSrcIP, &m_llSrcIPFilter))
{
GetDlgItem(IDC_SRC_IP)->SetFocus();
return;
}
if(!IsValidIP(m_strDestIP, &m_llDestIPFilter))
{
GetDlgItem(IDC_DEST_IP)->SetFocus();
return;
}
EndDialog(IDOK);
}
bool CFilterSetDlg1::IsValidIP(CString &strIP, LONGLONG* llIP)
{
int nStart, i, j, ipPart;
TCHAR sep=_T('.');//转化为无符号形式
strIP.TrimLeft();
strIP.TrimRight();
CString str=strIP;
(*llIP)=0;
do {
if(0==str.GetLength())
break;
if(strIP.Compare(_T("*")))//布尔函数
{
for(i=0;i<3;i++)
{
nStart=str.Find(sep,0);
for(j=0;j<nStart;j++)
{
if(!(isdigit(str[j]) || str[j]==_T(' ')))
goto invalid;
}
ipPart=atoi(str.Left(nStart));//取字符串左边的nstart个字符
if(ipPart>255||ipPart<0)
break;
(*llIP)|=ipPart;
(*llIP)<<=8;
str.Delete(0, nStart+1);//从第0个位置开始,删除(后参数)个字母
}
ipPart=atoi(str);//把该串转为相应的整形
if(ipPart>255||ipPart<0)
break;
(*llIP)|=ipPart;
}
else//否则*就代笔允许接收所有的IP
{
(*llIP)=0xFFFFFFFFF;
}
return TRUE;
}
while(false);
invalid:
(*llIP)=-1;
return TRUE;
}
LONGLONG CFilterSetDlg1::GetSourceIPFilter()
{
return m_llSrcIPFilter;
}
LONGLONG CFilterSetDlg1::GetDestIPFilter()
{
return m_llDestIPFilter;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -