⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filtersetdlg1.cpp

📁 一个关于sniffe嗅探的程序
💻 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 + -