ip端口扫描.doc_第1页
ip端口扫描.doc_第2页
ip端口扫描.doc_第3页
ip端口扫描.doc_第4页
ip端口扫描.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

完整代码:/ PortScan.h : main header file for the PORTSCAN application/ #if !defined(AFX_PORTSCAN_H_20A7D450_8390_4726_9DC6_0616AAEDFE4B_INCLUDED_)#define AFX_PORTSCAN_H_20A7D450_8390_4726_9DC6_0616AAEDFE4B_INCLUDED_ #if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000 #ifndef _AFXWIN_H_ #error include stdafx.h before including this file for PCH#endif #include resource.h / main symbols / CPortScanApp:/ See PortScan.cpp for the implementation of this class/ class CPortScanApp : public CWinApppublic: CPortScanApp(); / Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CPortScanApp) public: virtual BOOL InitInstance(); /AFX_VIRTUAL / Implementation /AFX_MSG(CPortScanApp) / NOTE - the ClassWizard will add and remove member functions here. / DO NOT EDIT what you see in these blocks of generated code ! /AFX_MSG DECLARE_MESSAGE_MAP(); / /AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line. #endif / !defined(AFX_PORTSCAN_H_20A7D450_8390_4726_9DC6_0616AAEDFE4B_INCLUDED_)/ PortScan.cpp : Defines the class behaviors for the application./ #include stdafx.h#include PortScan.h#include PortScanDlg.h #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif / CPortScanApp BEGIN_MESSAGE_MAP(CPortScanApp, CWinApp) /AFX_MSG_MAP(CPortScanApp) / NOTE - the ClassWizard will add and remove mapping macros here. / DO NOT EDIT what you see in these blocks of generated code! /AFX_MSG ON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP() / CPortScanApp construction CPortScanApp:CPortScanApp() / TODO: add construction code here, / Place all significant initialization in InitInstance / The one and only CPortScanApp object CPortScanApp theApp; / CPortScanApp initialization BOOL CPortScanApp:InitInstance() AfxEnableControlContainer(); / Standard initialization / If you are not using these features and wish to reduce the size / of your final executable, you should remove from the following / the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); / Call this when using MFC in a shared DLL#else Enable3dControlsStatic(); / Call this when linking to MFC statically#endif AfxSocketInit(NULL); CPortScanDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse = IDOK) / TODO: Place code here to handle when the dialog is / dismissed with OK else if (nResponse = IDCANCEL) / TODO: Place code here to handle when the dialog is / dismissed with Cancel / Since the dialog has been closed, return FALSE so that we exit the / application, rather than start the applications message pump. return FALSE;/ PortScanDlg.h : header file/ #if !defined(AFX_PORTSCANDLG_H_D76D9489_EB09_4865_85B5_BD58913E2EA4_INCLUDED_)#define AFX_PORTSCANDLG_H_D76D9489_EB09_4865_85B5_BD58913E2EA4_INCLUDED_ #if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000 / CPortScanDlg dialog class CPortScanDlg : public CDialog/ Constructionpublic: SOCKET sock ; BOOL m_ThreadExit; /是否退出线程序 SOCKADDR_IN addr; CString str; CString IP ; void OnCancel(); CPortScanDlg(CWnd* pParent = NULL); / standard constructor / Dialog Data /AFX_DATA(CPortScanDlg) enum IDD = IDD_PORTSCAN_DIALOG ; CProgressCtrl m_Progress; CListCtrl m_List; CIPAddressCtrl m_IP; CString m_From; CString m_EndPort; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CPortScanDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL / Implementationprotected: HICON m_hIcon; HANDLE m_hTread; /线程句柄 / Generated message map functions /AFX_MSG(CPortScanDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); virtual void OnOK(); afx_msg void OnStart(); afx_msg void OnStop(); /AFX_MSG DECLARE_MESSAGE_MAP(); /AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line. #endif / !defined(AFX_PORTSCANDLG_H_D76D9489_EB09_4865_85B5_BD58913E2EA4_INCLUDED_)/ PortScanDlg.cpp : implementation file/ #include stdafx.h#include PortScan.h#include PortScanDlg.h #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif / CAboutDlg dialog used for App About class CAboutDlg : public CDialogpublic: CAboutDlg(); / Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL / Implementationprotected: /AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP(); CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INIT void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CAboutDlg) /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) /AFX_MSG_MAP(CAboutDlg) / No message handlers /AFX_MSG_MAPEND_MESSAGE_MAP() / CPortScanDlg dialog CPortScanDlg:CPortScanDlg(CWnd* pParent /*=NULL*/) : CDialog(CPortScanDlg:IDD, pParent) /AFX_DATA_INIT(CPortScanDlg) m_From = _T(); m_EndPort = _T(); /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDI_ICON1); void CPortScanDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CPortScanDlg) DDX_Control(pDX, IDC_PROGRESS, m_Progress); DDX_Control(pDX, IDC_LIST1, m_List); DDX_Control(pDX, IDC_IPADDRESS1, m_IP); DDX_Text(pDX, IDC_FROMPORT, m_From); DDX_Text(pDX, IDC_TOPORT, m_EndPort); /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CPortScanDlg, CDialog) /AFX_MSG_MAP(CPortScanDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) ON_BN_CLICKED(IDC_STOP, OnStop) /AFX_MSG_MAPEND_MESSAGE_MAP() / CPortScanDlg message handlers BOOL CPortScanDlg:OnInitDialog() CDialog:OnInitDialog(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this automatically / when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon m_List.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_GRIDLINES|LVS_EX_TRACKSELECT); m_List.InsertColumn(0,端口号,LVCFMT_LEFT,120); m_List.InsertColumn(1,端口状态,LVCFMT_LEFT,120); return TRUE; / return TRUE unless you set the focus to a control void CPortScanDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework. void CPortScanDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); / The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CPortScanDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon; void CPortScanDlg:OnOK() DWORD WINAPI ThreadProc( LPVOID lpParameter ) CPortScanDlg* pDlg = (CPortScanDlg* )lpParameter; memset(&pDlg-addr,0,sizeof(SOCKADDR_IN); pDlg-addr.sin_addr.S_un.S_addr = inet_addr(pDlg-IP.GetBuffer(0); pDlg-addr.sin_family =AF_INET ; int from = atoi(pDlg-m_From); int end = atoi(pDlg-m_EndPort); for (int port = from; port m_Progress.SetPos(port); pDlg-sock = socket(AF_INET,SOCK_STREAM,0); pDlg-addr.sin_port = htons(port) ; pDlg-str.Format(%d,port); if (connect(pDlg-sock,(sockaddr*)&pDlg-addr,sizeof(SOCKADDR_IN)=0) pDlg-m_List.InsertItem(0,); pDlg-m_List.SetItemText(0,0,pDlg-str); pDlg-m_List.SetItemText(0,1,占用); else pDlg-m_List.InsertItem(0,); pDlg-m_List.SetItemText(0,0,pDlg-str); pDlg-m_List.SetItemText(0,1,未用); closesocket(pDlg-sock); if (pDlg-m_ThreadExit) ExitThread(0); AfxMessageBox(扫描完成); return 0; void CPortScanDlg:OnStart() UpdateData(); m_IP.GetWindowText(IP); m_Progress.SetRange(0,80); m_Progress.SetPos(0); DWORD ThreadID; m_ThreadExit = FALSE; m_List.DeleteAllItems(); m_hTread = CreateThread(NULL,0,ThreadProc,(LPVOID)this,0,&ThreadID); void CPortScanDlg:OnStop() m_Progress.SetPos(0); m_ThreadExit = TRUE; closesocket(sock); void CPortScanDlg:OnCancel() CDialog:OnCancel(); /NO_DEPENDENCIES/ Microsoft Developer Studio generated include file./ Used by PortScan.rc/#define IDM_ABOUTBOX 0x0010#define IDD_ABOUTBOX 100#define IDS_ABOUTBOX 101#define IDD_PORTSCAN_DIALOG 102#define IDR_MAINFRAME 128#define IDI_ICON1 129#define IDC_IPADDRESS1 1000#define IDC_FROMPORT 1001#define IDC_TOPORT 1002#define IDC_LIST1 1003#define IDC_START 1004#define IDC_STOP 1005#define IDC_PROGRESS 1006 / Next default values for new objects/ #ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 130#define _APS_NEXT_COMMAND_VALUE 32771#define _APS_NEXT_CONTROL_VALUE 1007#define _APS_NEXT_SYMED_VALUE 101#endif#endif/ stdafx.h : include file for st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论