没有合适的资源?快使用搜索试试~ 我知道了~
计算机网络课程设计 端口扫描 实验报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 82 浏览量
2022-06-27
12:35:56
上传
评论 1
收藏 130KB DOC 举报
温馨提示
试读
20页
计算机网络课程设计 端口扫描 实验报告.doc
资源推荐
资源详情
资源评论
目 录
1. 需求分析
1.1 课程设计目的
加深对 TCP/IP 的理解,熟悉 socket 编程。
课程设计内容
实现一个扫描器,使用 TCP connect 进行端口扫描,并把扫描到的结果记
录下来。
课程设计要求
(1) Windows 或 Linux 环境下,程序在单机上运行;
(2) 使用端口扫描对一台主机进行扫描,并显示出结果;对一个网段进
行 IP 扫描,显示出结果;
(3) 提供友好的用户界面。
2. 概要设计
2.1 原理概述
TCP connect 扫描是最基本的扫描,操作系统提供的 connect()系统调
用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状
态,那么 connect()就能成功。否则,这个端口是不能用的,即没有提供服
务。
2.2 运行环境
Windows xp,VC++6.0
2.3 基本设计思路
创建一个 CSocket 套接字,通过 CSocket 的 Connect 函数测试该主机的
某个端口是否能够连通,获得该端口的打开状态。
2.4 功能模块设计
(1)测试主机某个端口是否打开;
(2)“扫描结果”标题栏;
(3)扫描单个或多个端口的单选按钮;
(4)“扫描”,“停止”,“保存”按钮。
3.详细设计
3.1 程序流程
2
开始扫描
初始化
扫描单个端
口?
T
m_bSinglePort=true;
m_cSinglePort.EnableWindow();
m_cPortFrom.EnableWindow(false);
m_cPortTo.EnableWindow(false);
m_cBtnStop.EnableWindow(false);
F
m_bSinglePort=false;
m_cSinglePort.EnableWindow(false);
m_cPortFrom.EnableWindow();
m_cPortTo.EnableWindow();
m_cBtnStop.EnableWindow(false);
设置端口
开始侦听端口
有错误?
显示结果
F
T
设置下一端口
扫描结束
3
3.2 主要算法
(1)测试主机某个端口是否打开的函数 TestConnection():
BOOL CMyDlg::TestConnection(CString IP,UINT nPort)
{ CSocket* pSocket;
pSocket=new CSocket;
ASSERT(pSocket);
if (!pSocket->Create())
{ delete pSocket;
pSocket=NULL;
return false;
}
while (!pSocket->Connect(IP,nPort))
{ delete pSocket;
pSocket=NULL;
return false;
}
pSocket->Close();
delete pSocket;
return true;
}
(2)响应单选按钮“扫描单个端口”和“扫描多个端口”的单击消息:
void CMyDlg::OnRadio1Single()
{ m_bSinglePort=true;
m_cSinglePort.EnableWindow();
m_cPortFrom.EnableWindow(false);
m_cPortTo.EnableWindow(false);
m_cBtnStop.EnableWindow(false);
}
void CMyDlg::OnRadio2Range()
{ m_bSinglePort=false;
m_cSinglePort.EnableWindow(false);
m_cPortFrom.EnableWindow();
m_cPortTo.EnableWindow();
m_cBtnStop.EnableWindow(false);
}
(3)显示列表框标题栏的成员函数:
//增加列表框标题栏的某一列
BOOL CMyDlg::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int
nMask,int nFmt)
{ LV_COLUMN lvc;
lvc.mask=nMask;
lvc.fmt=nFmt;
lvc.pszText=(LPTSTR) strItem;
lvc.cx=m_cResult.GetStringWidth(lvc.pszText)+25;
4
剩余19页未读,继续阅读
资源评论
- 2301_782884522024-01-04资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
智慧安全方案
- 粉丝: 3609
- 资源: 59万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功