端口扫描实验报告

上传人:汽*** 文档编号:548420723 上传时间:2023-09-05 格式:DOC 页数:14 大小:387KB
返回 下载 相关 举报
端口扫描实验报告_第1页
第1页 / 共14页
端口扫描实验报告_第2页
第2页 / 共14页
端口扫描实验报告_第3页
第3页 / 共14页
端口扫描实验报告_第4页
第4页 / 共14页
端口扫描实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《端口扫描实验报告》由会员分享,可在线阅读,更多相关《端口扫描实验报告(14页珍藏版)》请在金锄头文库上搜索。

1、 综合实验报告( 2010 - 2011 年度第二学期)名 称: 网络综合实验 题 目: 端口扫描程序 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 2 周 成 绩: 日期: 2011年6月10日 / 文档可自由编辑打印一、综合实验的目的与要求1 任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。2 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。3 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功

2、能完善,方便易用,操作无误。4 学生要求人数:1人。二、综合实验正文1端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET服务和HTTPD服务等。2实验所用的端口扫描技术:端口扫描技术有TCP connect()扫描、TCP SYN扫描、TCP FIN

3、 扫描、IP段扫描等等。本次实验所用的技术是TCP connect()扫描,这是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么 connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用 这个调用。3实验具体实现方案:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。基本工作过程如下:(1) 设定好一定的端口扫描范围;(2) 设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通

4、;(3) 创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;(4) 如果返回false,表示端口没有开放,否则端口开放。4有关TCP/IP的知识:4.1套接字概念1) 在网络中要全局地标识一个参与通信的进程,需要采用三元组:协议、主机IP地址、端口号。2)要描述两个应用进程之间的端到端的通信关联则需要一个五元组:协议、信源机IP地址、信源应用进程端口、信宿机IP地址、信宿应用进程端口。3)套接字可以理解为通信连接的一端,其主要包括协议、主机IP地址和端口号。4)将两个套接字连接到一起便可以在不同应用进程之间传递数据5)套接字实现了对网络和传输层协议的封装,

5、为应用进程之间的通信连接的建立、数据传输等通信过程提供了编程界面。4.2套接字编程的具体地位4.3 面向连接的客户机/服务器程序工作模型:本次实验所用到的知识仅仅是上图所示的一部分,先是建立socket,然后connect连接。5试验流程图:6本实验用所用到的MFC有关内容: CSocket是CAsyncSocket类的派生类,除了继承了父类中一些常用、易懂的Windows Sockets API函数外,还对CAsyncSocket底层中较难控制的一些函数进行了处理,提供了对比AsyncSocket类抽象化级别更高套接字的支持。CSocket是用MFC序列化协议的一种版本,通过MFC中的CAr

6、chive对象将数据传递给套接字对象,或者从套接字对象接收数据,使得套接字上的数据输入输出就如同使用MFC的文档一样简捷易用,即CArchive管理着原来必须由用户自己使用原始API或CAsyncSocket类来管理通信的许多工作,进而方便了用户的使用,较好地解决了CAsyncSocket应用中较难克服的多线程处理问题。 CSocket实现了阻塞操作,其对象在调用Connect。CSocket主要成员函数:Create函数格式:BOOL Create (UINT nSocketPort = 0, /端口号 int nSocketType = SOCK_STREAM, /套接字类型 LPCTST

7、R lpszSocketAddress = NULL /IP地址); Connect 主要成员函数BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen)7具体实现过程:7.1重载CSocket类,使用名称为CMySock。7.2定义一个函数为TestConnect(CString m_ip,UINT m_port),该函数的主要功能为:检测某一个指定主机IP与Port是否已打开,如果已经打开,返回true,否则,返回false。 CSocket* pSocket;pSocket-Create();pSocket- Connect(m

8、_ip,m_port);pSocket-Close( );delete pSocket;注意:本函数的主要矛盾是Connect的返回值,非0,即已经打开。7.3添加事件函数OnScan(),本函数实现的功能有: 你的输入是否完整检测。 if(m_ip=_T(0.0.0.0) MessageBox(请输入Ip地址!); 如果某一指定的ip-port是打开的,在list中如何显示的问题。 m_list.InsertItem(0,_T(); m_list.SetItemText(0,0,开始扫描!); While语句控制你输入的ip段或者port段检测完成。 while(m_portcmd-nets

9、tat -na-enter 得到具体端口信息如下:有端口135、445、1025、1026、1027、1028、1029、3389等端口是处于打开状态,故可设计132139检测数据,扫描次数2次。IP地址如下:127.0.0.1.输入数据,点击开始扫描,扫描即可开始:扫描结果如下:显示了从开始扫描到结束扫描的结果。分析:127.0.0.1为是回送地址,指本地机。 只扫描一次的端口一般是打开的,2次的端口就待看端口状态。 只有135端口是打开的。2)网段多IP的扫描,单端口的扫描:首先获得他机已经打开的端口号,在Windows + R-cmd-netstat -na-enter 得到具体端口信息

10、。 ip直接输入他机ip地址与端口号即可。 可以设置要扫描的IP段为:59.67.243.3259.67.243.36 同时我在33、34、36号主机放置一个端口打开小程序,用于打开7788端口。 实验演示如下: 运行Server程序,点击创建服务,程序开始侦听连接。运行结果如下: 此时显示防火墙容许,点击公共网络-容许访问即可,如图:运行端口扫描程序如图:注:本软件里面的扫描次数没必要输入太大,一般默认为1即可,主要基于TCP三次握手可靠性与底层代码延时考虑。在进行他机验证时可能比较慢(如果要扫描的端口或ip处于打开状态时,速度一般比较快),主要是connect函数等待时间影响所致。四、参考文献1 肖微.端口扫描技术的原理及应用.网络安全技术与应用.2006.10. 2 刘咏.网络安全性能测试平台之端口扫描研究及实现.四川大学工程硕士学位论文.2005.11. 3 林琪.VC+下实现 Socket 编程方法.编程与应用起步.2000.9 4 张伟,蒋念平.端口扫描方法的原理、实现和防御.电脑编程技巧与维护.2004.4 5 王振江 .VC+环境下WinSock编程及实例分析.四川电力技术.2003.6 6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号