网络综合实验报告--端口扫描_第1页
网络综合实验报告--端口扫描_第2页
网络综合实验报告--端口扫描_第3页
网络综合实验报告--端口扫描_第4页
网络综合实验报告--端口扫描_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、综合实验报告( 2016- 2017年度第 1 学期)名 称: 网络综合实验 题 目: 端口扫描程序设计与实现 院 系: 计算机系 班 级: 网络1301班 学 号: 学生姓名: 指导教师: 李 丽 芬 设计周数: 1 周 成 绩: 日期:2017年1月13日网络综合实验任 务 书一、实验名称:端口扫描程序设计与实现二、目的与要求1 任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。2 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。3 要求:熟悉有关定义、概念和实现算法

2、,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。4 学生人数:1人。三、主要内容1 编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。(1)设定好一定的端口扫描范围,并设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;(2)创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;(3)如果返回false,表示端口没有开放,否则端口开放;(4)选择其中一个活动端口,建立连接并发送一个数据块,服

3、务器收到后原样返回客户端。2 四、进度计划序号设计内容完成时间备注1任务布置及资料收集周一2软件方案设计与制定周二3编程实现周三、周四4程序测试与修改周五上午5软件验收 周五下午五、设计成果要求1 完成规定的实验任务,保质保量;2 完成综合实验报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对实验思路的归纳和对问题解决过程的总结。六、 考核方式1 平时成绩验收答辩实验报告;2 五级分制。 学生姓名:指导教师: 李丽芬 2017 年 1 月 9 日一、课程设计的目的与要求1任务实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。2目的加深对课堂讲授知识的理解,熟练掌

4、握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。3要求熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。二、设计与分析1. 程序功能设计说明端口扫描器可实现对单个主机或者某网段上的主机以及单个端口或者某范围内的端口的扫描,用户需要选择单个主机扫描还是多个IP地址扫描,以及扫描端口范围。因为有可能有的端口一次扫描不通,所以用户还可以选择扫描次数,系统默认扫描1次。确定扫描IP和扫描端口后点击“开始”即可对相应IP下的端口进行侦听,并返回端口状态,如果端口开放则同时返回端口服务,

5、扫描结束后线程停止。单击listbox中的想要连接的主机和端口,点击“连接该服务器”,可连接选择的服务器,并进行数据的传递。2实验运行过程 2.1 启动服务器图1 启动服务器 填写主机IP和想要开放的端口,点击 “启动服务”,即可开放该主机端口服务。其中端口范围建议为从1024到49151。2.2 端口扫描图图2 端口扫描扫描次数默认为1次,输入扫描的主机和端口范围,点击开始即可扫描。扫描进度会不断更新。扫描完成后,结果上会显示Ping通时间、主机名、以及端口状态和服务。图3 程序容错单击listbox中想连接的项目,点击“连接该服务器”,即可调用另一客户端窗体,连接服务器。2.3 客户端界面

6、客户端根据传入的IP和端口参数,自动连接服务器,若点击的为未开放的端口,会显示“服务器未开放”图4 客户端界面-连接成功图5 客户端界面-服务器不在线客户端向服务器发送数据,服务器收到后原样返回客户端。图6 客户端界面-发送并接受数据图7 服务器界面-接受数据服务器还可以选择连接的某个客户端,向客户端发送数据。3实验编写难点3.1提取IP和端口号在编写过程中,需要提取listbox中的item,但提取出来是整个字符串,所以我在字符串中添加了标记来提取IP和端口号。其中主要代码如下:/添加itemif (s = Open) listBox1.Items.Add(| + ip + q + | /

7、+ i + / + s + + + Service(i); /提取IP和端口 并显示客户端窗口if (listBox1.SelectedItems != null & listBox1.SelectedItems.Count 0) string zongstr = listBox1.SelectedItems0.ToString(); string str1 = |; string str2 = |; string str3 = /; string str4 = /; int start1 = zongstr.IndexOf(str1); int end1 = zongstr.IndexOf(

8、str2); int start2 = zongstr.IndexOf(str3); int end2 = zongstr.IndexOf(str4); clickIP =zongstr.Substring(start1+1,end1-start1-1); clickPort = Int32.Parse( zongstr.Substring(start2 + 1, end2 - start2 - 1); FormChatClient f2 = new FormChatClient(clickIP ,clickPort); f2.ShowDialog(); 3.2 扫描一段范围的IP实验要求扫描

9、IP和端口都是可以选择的,扫描单个主机十分简单,只要让起止IP相等即可。但是扫描一定范围的主机,可以通过 Split(.) 提取主机号,通过for循环不断增加IP地址。其中主要代码如下:for (int q = startIp; q = endIp & ok = true; q+) /-ping Ping ping = new Ping(); PingReply reply = ping.Send(IPAddress.Parse(ip + q), 15); if (reply.Status = IPStatus.Success) richTextBox1.Text += ip + q + Pi

10、ng时间 + reply.RoundtripTime + 毫秒n; IPHostEntry host = Dns.GetHostEntry(ip + q); richTextBox1.Text += 主机名为 + host.HostName + n; else listBox1.Items.Add(ip + q + + - + + - + + - 不可达n); richTextBox1.Text += ip + q + 不可达n; continue; 3.3 只显示开放的端口若扫描范围过大,结果过于繁多,可以只显示开放的端口,可以设置一个CheckBox,选中后只显示状态为“Open”的端口。

11、其中主要代码如下:string s = State(i); if (checkBox_showopenport.Checked) if (s = Open)listBox1.Items.Add(| + ip + q + | / + i + / + s + + + Service(i); 3.4扫描进度与次数的实现扫描进度条要根据进度不断更新,具体代码通过查阅资料编写完成。其中具体代码如下:/扫描进度条的设计progressBar1.Minimum = portStart; progressBar1.Maximum = portEnd; for (int i = portStart; i = p

12、ortEnd; i+) progressBar1.Value = i; 扫描次数默认为1次。设置次数变量num,在扫描函数外层添加一层for循环,即可完成扫描次数的更改。3.5客户端和服务器之间的连接以及数据传送这一部分在网络编程课程设计中已经实现过,包括监听,连接,发送返回等过程,本实验难点在于把端口扫描器和客户端服务器聊天室连接起来。我使用传参的形式,将两者联系起来。其中主要代码如下:/客户端的构造函数public FormChatClient(string IP,int port) InitializeComponent(); try txtServerIp.Text = IP; txt

13、Port.Text = port.ToString(); IPAddress zxz_ip = IPAddress.Parse(this.txtServerIp.Text.Trim(); IPEndPoint point = new IPEndPoint(zxz_ip, int.Parse(this.txtPort.Text.Trim(); socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socketClient.Connect(point);/不用监听直接创

14、建连接 /开启一个线程实例 threadclient = new Thread(RecMsg); /设为后台线程 threadclient.IsBackground = true; /启动线程 threadclient.Start(); ShowMsg(-服务器连接成功-); catch (Exception) ShowMsg(-服务器不在线-); /端口扫描器端调用private void button_connect_Click(object sender, EventArgs e) FormChatClient f2 = new FormChatClient(clickIP ,clickPort); f2.ShowDia

温馨提示

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

评论

0/150

提交评论