www.pudn.com > NetScan.rar > NewPortDlg.cpp


// NewPortDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "NetScan.h" 
#include "NewPortDlg.h" 
#include "MainFrm.h" 
#include "NetScanView.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CNewPortDlg dialog 
 
 
CNewPortDlg::CNewPortDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CNewPortDlg::IDD, pParent) 
{ 
 
	//{{AFX_DATA_INIT(CNewPortDlg) 
	//for(int i=0;i<6;i++) 
	m_bPort0 = TRUE; 
	m_bPort1 = TRUE; 
	m_bPort2 = TRUE; 
	m_bPort3 = TRUE; 
	m_bPort4 = TRUE; 
	m_bPort5 = TRUE; 
	m_timeout = 100; 
	//}}AFX_DATA_INIT 
	CMainFrame* m_pParent; 
	m_pParent=(CMainFrame *)pParent; 
	m_pView=(CNetScanView *)m_pParent->GetActiveView(); 
} 
 
 
void CNewPortDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CNewPortDlg) 
	DDX_Check(pDX, IDC_CHECK1, m_bPort0); 
	DDX_Check(pDX, IDC_CHECK2, m_bPort1); 
	DDX_Check(pDX, IDC_CHECK3, m_bPort2); 
	DDX_Check(pDX, IDC_CHECK4, m_bPort3); 
	DDX_Check(pDX, IDC_CHECK5, m_bPort4); 
	DDX_Check(pDX, IDC_CHECK6, m_bPort5); 
	DDX_Control(pDX, IDC_IPADDR_BEGIN, m_beginAddress); 
	DDX_Control(pDX, IDC_IPADDR_END, m_endAddress); 
	DDX_Text(pDX, IDC_TIMEOUT, m_timeout); 
	DDV_MinMaxInt(pDX, m_timeout, 0, 999999); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CNewPortDlg, CDialog) 
	//{{AFX_MSG_MAP(CNewPortDlg) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CNewPortDlg message handlers 
 
BOOL CNewPortDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	// TODO: Add extra initialization here 
	 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CNewPortDlg::OnOK()  
{ 
	// TODO: Add extra validation here 
	UpdateData(); 
 
	//------设置IP地址--------------------- 
	unsigned int addr1,addr2; 
	BYTE *a,*b; 
	//得到开始和终止的IP地址 
	CIPAddressCtrl * ctrl=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDR_BEGIN); 
	a=(BYTE *)&addr1; 
	ctrl->GetAddress(a[3],a[2],a[1],a[0]); 
	ctrl=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDR_END); 
	b=(BYTE *)&addr2; 
	ctrl->GetAddress(b[3],b[2],b[1],b[0]); 
	//判断终止地址是否比起始地址大 
	if(addr1>addr2) 
	{ 
		AfxMessageBox("请重新设置扫描的IP地址,起始地址应小于终止地址!"); 
		return; 
	} 
	//--------------------------- 
	//--------显示起始IP和终止IP----------------- 
	CString strBeginAddress,strEndAddress; 
	strBeginAddress.Format("%d.%d.%d.%d",a[3],a[2],a[1],a[0]); 
	strEndAddress.Format("%d.%d.%d.%d",b[3],b[2],b[1],b[0]); 
	(m_pView->GetDlgItem(IDC_STATIC1))->SetWindowText("起始IP:"+strBeginAddress); 
	(m_pView->GetDlgItem(IDC_STATIC2))->SetWindowText("终止IP:"+strEndAddress); 
	(m_pView->GetDlgItem(IDC_BTN_START))->EnableWindow(true); 
	(m_pView->GetDlgItem(IDC_BTN_START))->SetWindowText("开始扫描"); 
	//-------------------------------------------- 
	//------设置端口-------------- 
	CString temp=""; 
	if(m_bPort0)//http 
	{ 
		m_pView->m_Port[0]=80; 
		temp+="http(80) "; 
	}else 
		m_pView->m_Port[0]=0; 
	if(m_bPort1)//ftp 
	{ 
		m_pView->m_Port[1]=21; 
		temp+="ftp(21) "; 
	}else 
		m_pView->m_Port[1]=0; 
	if(m_bPort2)//dns 
	{ 
		m_pView->m_Port[2]=53; 
		temp+="dns(53) "; 
	}else 
		m_pView->m_Port[2]=0; 
	if(m_bPort3)//smtp 
	{ 
		m_pView->m_Port[3]=25; 
		temp+="smtp(25) "; 
	}else 
		m_pView->m_Port[3]=0; 
	if(m_bPort4)//pop3 
	{ 
		m_pView->m_Port[4]=110; 
		temp+="pop3(110) "; 
	}else 
		m_pView->m_Port[4]=0; 
	if(m_bPort5)//snmp 
	{ 
		m_pView->m_Port[5]=161; 
		temp+="snmp(167) "; 
	}else 
		m_pView->m_Port[5]=0; 
	 
	(m_pView->GetDlgItem(IDC_S))->SetWindowText("被扫描的端口包括:"+temp); 
	//--------------------------- 
	//-------设置主窗口关于ping的参数------------- 
	m_pView->m_BBeginAddress=addr1; 
	m_pView->m_BEndAddress=addr2; 
	m_pView->m_timeout=m_timeout; 
	m_pView->m_run=2; 
	//-------------------------------------------- 
	m_pView->SetUI(); 
 
	CDialog::OnOK(); 
}