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();
}