多线程端口扫描器

合集下载

X-Scan

X-Scan

X-Scan这里使用x-scanner作为介绍对象,原因是x-scanner集成了多种扫描功能于一身,它可以采用多线程方式对指定IP地址段(或独立IP地址)进行安全漏洞扫描,提供了图形界面和命令行两种操作方式,扫描内容包括:标准端口状态及端口banner信息、CGI漏洞、RPC漏洞、SQL-SERVER默认帐户、FTP弱口令,NT主机共享信息、用户信息、组信息、NT主机弱口令用户等。

扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件。

对于一些已知的CGI和RPC漏洞,x-scanner给出了相应的漏洞描述、利用程序及解决方案,节省了查找漏洞介绍的时间。

首先x-scanner包括了两个运行程序:xscann.exe和xscan_gui.exe,这两个程序分别是扫描器的控制台版本和窗口版本,作为初学者可能更容易接受窗口版本的扫描软件,因为毕竟初学者使用最多的还是“应用程序”,无论运行那一个版本,他们的功能都是一样的。

首先让我们运行窗口版本看看:窗口分为左右两部分,左面是进行扫描的类型,这包括前面提到的漏洞扫描、端口扫描等基本内容;另一部分是有关扫描范围的设定,xscanner可以支持对多个IP地址的扫描,也就是说使用者可以利用xscanner成批扫描多个IP地址,例如在IP地址范围内输入211.100.8.1-211.100.8.255就会扫描整个C类的255台服务器(如果存在的话),这样黑客可以针对某一个漏洞进行搜索,找到大范围内所有存在某个漏洞的服务器。

当然如果只输入一个IP地址,扫描程序将针对单独IP进行扫描。

剩下的端口设定在前面已经介绍过,一般对于网站服务器,这个端口选取80或者8080,对于某些特殊的服务器也许还有特殊的端口号,那需要通过端口扫描进行寻找。

多线程扫描是这个扫描器的一大特色,所谓多线程就是说同时在本地系统开辟多个socket连接,在同一时间内扫描多个服务器,这样做的好处是提高了扫描速度,节省时间,根据系统的资源配置高低,线程数字也可以自行设定(设定太高容易造成系统崩溃)。

X-Scan

X-Scan

-bind : 检测BIND漏洞; -finger : 检测Finger漏洞; -sygate : 检测sygate漏洞; -all : 检测以上所有项目; 其他选项] 含义如下: [其他选项] 含义如下: -v: 显示详细扫描进度 跳过Ping Ping不通的主机 -p: 跳过Ping不通的主机 -o: 跳过没有检测到开放端口的主机 <并发线程数量[,并发主机数量 并发线程数量[,并发主机数量]>: -t定最大并发线程数量和并发 主机数量, 默认数量为100,10 主机数量, 默认数量为100,10
Q:扫描过程中机器突然蓝屏重启是什么原因? A:扫描过程中系统蓝屏是有可能的, AtGuard、天网等防火墙的驱动程序在处理特 殊包的时候有可能出错导致系统崩溃,另外很 多防火墙驱动与WinPCap驱动本身也存在冲突, 建议先禁止或卸载防火墙程序再试试。 Q:为什么在一次扫描中我选择了“SYN” 方式进行端口扫描,但X-Scan实际采用的是 X-Scan “TCP”方式,而且也没有被动识别出目标操 作系统? A:端口扫描中的“SYN”方式在NT4或XP+SP2 系统下无法使用,在windows 2000等系统下使 用时必须拥有管理员权限,否则将自动改用 “TCP”方式进行端口扫描。
“全局设置”模块 全局设置” “扫描模块”项 - 选择本次扫描需要加载的插件。参数设定好之 后再点击扫描模块,可以选择扫描的项目
“并发扫描”项 - 设置并发扫描的主机和并发线程数, 也可以单独为每个主机的各个插件设置最大线程数。 “网络设置”项 - 设置适合的网络适配器,若找不到 网络适配器,请重新安装驱动。 “扫描报告”项 - 扫描结束后生成的报告文件名,保存 在LOG目录下。扫描报告目前支持TXT、HTML和XML三 种格式。 “其他设置”项: “跳过没有响应的主机” - 若目标主机不响应ICMP ECHO及TCP SYN报文,X-Scan将跳过对该主机的检测。 “无条件扫描” - 如标题所述 “跳过没有检测到开放端口的主机” - 若在用户指定的 TCP端口范围内没有发现开放端口,将跳过对该主机的后 续检测。 “使用NMAP判断远程操作系统” - X-Scan使用SNMP、 NETBIOS和NMAP综合判断远程操作系统类型,若NMAP 频繁出错,可关闭该选项。 “显示详细信息” - 主要用于调试,平时不推荐使用该 选项。

端口扫描工具Nmap

端口扫描工具Nmap

端口扫描工具Nmap一、Nmap简介Nmap(Network Mapper)是开放源码的网络探测和端口扫描工具,具有主机发现、端口扫描、操作系统检测、服务和版本检测、逃避放火墙及入侵检测系统等功能。

可从网站/nmap/下载不同操作系统版本的源代码和可执行程序。

Nmap以表格形式输出扫描目标的端口号、协议、服务名称和状态,端口状态分别用开放(open)、关闭(closed)、已过滤(filtered)和未过滤(unfiltered)表示。

其中“开放”表示应用程序正在该端口监听连接或分组;“关闭”表示没有应用程序在该端口监听;“已过滤”表示防火墙或其他过滤器封锁了该端口,Nmap无法知道该端口的状态;“未过滤”表示端口对Nmap探测有响应,但Nmap不能确定端口是开放还是关闭。

Nmap有时也可能输出open|filtered 或closed|filtered的状态组合,表示不能正确识别端口处于其中那一个状态。

命令格式与帮助:Nmap命令格式:nmap [ Scan Type ...] [ Options ] { target specification }Nmap命令帮助:C:\>nmap(不带命令参数运行nmap)常用扫描类型:(1)-sT (TCP connect() 端口扫描);(2)-sS (TCP SYN 同步扫描);(3)-sU (UDP端口扫描);(4)-sN (Null扫描 ) ;(5)-sF 扫描 (FIN)(6)-sP(Ping扫描);(7)-sX (Xmas扫描);(8)-sA (TCP ACK扫描,探测端口是否被过滤,open和closed端口返回RST报文,表示unfiltered,否则为filtered)(9)-sM (TCP Maimon扫描, Maimon发现BSD系统探测报文FIN-ACK,响应RST ) ;(10)--scanflags (定制TCP标志位URG, ACK,PSH, RST,SYN,和FIN的任何组合设计扫描探测报文 ) (11)-sW (TCP窗口扫描) ;-sI (Idlescan盲扫描) ;-sO (IP协议扫描) 等,详细内容参考Nmap手册;(12)未指定扫描类型,默认扫描类型为TCP SYN 同步扫描。

Linux服务器端口扫描工具的Python脚本

Linux服务器端口扫描工具的Python脚本

Linux服务器端口扫描工具的Python脚本在现代信息技术的发展中,服务器的安全性显得尤为重要。

为了确保服务器的安全,管理员需要定期扫描服务器上的开放端口,以及及时发现潜在的安全漏洞。

而Linux服务器为管理员提供了强大的端口扫描工具,本文将介绍一种基于Python的服务器端口扫描工具脚本。

Linux操作系统的内核具有精巧的网络功能,管理员可以使用它来构建自己的端口扫描工具。

Python作为一种简洁高效的编程语言,为我们提供了丰富的库和模块,使得编写端口扫描脚本变得相对容易。

我们首先需要导入必要的库和模块。

在Python中,我们可以使用socket模块来进行网络通信。

下面是一个简单的Python脚本示例:```import socketdef port_scan(target_host, target_ports):for port in target_ports:try:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1)result = sock.connect_ex((target_host, port))if result == 0:print(f"端口 {port} 已开放")sock.close()except KeyboardInterrupt:print("程序被中断")sys.exit()except socket.gaierror:print("主机名无法解析")sys.exit()except socket.error:print("无法连接到服务器")sys.exit()target_host = "127.0.0.1" # 目标主机的IP地址target_ports = [80, 443, 22, 21, 3389] # 目标端口列表port_scan(target_host, target_ports)```上述脚本中,我们定义了一个名为`port_scan`的函数,用于进行端口扫描。

实训X-Scan的使用(介绍)

实训X-Scan的使用(介绍)

实训 X-Scan的使用实训名称:X-Scan的使用。

实训目的:掌握X-Scan的使用方法。

技术原理:x-scan采用了多线程扫描方式对指定IP(段)进行检测,并且支持插件功能。

扫描内容包括:远程服务漏洞、操作系统及版本类型、应用服务漏洞、网络设备漏洞、拒绝服务漏洞、各种弱口令漏洞及后门在内的二十多类。

对于绝大多数已知的漏洞,它还提供了相应的描述及解决方案。

实现功能:用X-Scan对目标系统进行漏洞扫描。

实训设备:PC机1台,安装Windows操作系统,X-Scan软件1套。

实训步骤:1、直接双击x-scan-gui.exe进入软件的主界面:在最上方一共有八个图标,从左至右分别是:扫描参数、开始扫描、暂停扫描、终止扫描、检测报告、使用说明、在线升级、退出。

2、因为X-Scan能扫描的东西很多,所以要设置的参数也很多。

在扫描之前。

我们必须先对“扫描参数”进行一些设置。

(1)直接点击“扫描参数”按钮或在“设置”菜单中选择“扫描参数”就会打开“扫描参数”的窗口。

它包括“检测范围”“全局设置”和“插件设置”三大模块。

这里是x-scan 的全部扫描设置。

(2)首先我们来看“检测范围”。

在“指定IP范围”栏中。

我们输入想要扫描的IP或是IP段。

也可以输入域名。

注意多个IP时,可以输入“-”或是“,”,来分隔IP范围。

比如192.168.0.1-192.168.0.255。

或类似192.168.100.1/24的掩码形式。

具体可查看“示例”。

“从文件中获取主机列表”。

选中该复选框将从文件中读取待检测主机的地址。

文件格式为纯文本。

每行可包含独立IP或域名。

也可以包含一“-”和“,”,分隔的IP范围。

然后来进行全局设置。

(3)点击左边“全局设置”—>“扫描模块”,便会显示出x-scan能检测的所有项目了。

我们根据自己的需要选择相应的扫描项目。

也可以“全选”。

至于“并发扫描”和“扫描报告”这两项。

使用默认就可以了。

Angry IP Scanner

Angry IP Scanner

Angry IP Scanner 是一款使用方便的IP、端口扫描工具。

利用它,您可以获得被扫描计算机的ping 响应时间、主机名称、计算机名称、工作组、登录用户名、MAC地址、TTL、NetBios 信息等;您也可以指定扫描端口,查看目标计算机开放端口的情况。

对于活动主机,您可以执行在资源管理器中打开、利用网页浏览器浏览、FTP、telnet、ping、tracert 或利用网页查找指定IP的地理位置等操作。

只需一个网址或主机名称,Angry IP Scanner 就能自动解析其IP地址并进行扫描。

除此以外,Angry IP Scanner 还支持自动选取并扫描整个B 类和 C 类IP 段,对常用IP进行收藏管理,导出扫描结果为多种文件格式等。

由于采用多线程扫描,Angry IP Scanner 可以同时对几十个IP发起扫描,因此速度极快
如图
扫描计算机的ping 响应时间、主机名称
扫描端口
执行在资源管理器中打开、利用网页浏览器浏览、FTP、telnet、ping、tracert 或利用网页查找指定IP的地理位置等
Angry IP Scanner 还支持自动选取并扫描整个B 类和C 类IP 段,对常用IP进行收藏管
理,导出扫描结果为多种文件格式。

端口扫描实验实验报告nmap端口扫描工具

端口扫描实验实验报告nmap端口扫描工具网络攻防对抗实验报告实验名称:端口扫描实验(实验三)指导教师:专业班级:姓名:学号:_____电子邮件:___实验地点:实验日期:实验成绩:____________________一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统的有用信息,发现网络系统的安全漏洞。

在实验中,我们将在Windows操作系统下使用端口扫描工具Xscan,Nmap和流光Fluxay5.0进行网络端口综合扫描实验,并给出安全性评估报告,加深对各种网络和系统漏洞的理解。

同时,通过系统漏洞的入侵练习增强网络安全防护意识。

二、实验原理TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。

端口便是计算机与外部通信的途径。

一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息。

进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。

用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。

扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。

前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。

后者指在本机运行的检测本地系统安全漏洞的扫描工具。

三、实验内容和步骤Xscan的应用1.Xscan的使用__scan v3.3 采用多线程方式对指定IP 地址段进行扫描,扫描内容包括:SNMP 信息,CGI 漏洞,IIS 漏洞,RPC 漏洞,SSL 漏洞,SQL-SERVER、SMTP-SERVER、弱口令用户等。

扫描结果保存在/log/目录中。

其主界面为下图所示。

2.开始扫描(1)配置扫描参数,先点击扫描参数,在下面红框内输入你要扫描主机的ip 地址(或是一个范围),本说明中我们设置为靶机服务器的IP 地址,45(2)选择需要扫描的项目,点击扫描模块可以选择扫描的项目(3)开始扫描,该扫描过程会比较长,请大家耐心等待,并思考各种漏洞的含义。

端口扫描器功能简介

一、端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。

扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET服务和HTTPD服务等。

二、常用端口扫描技术:1、TCP connect()扫描:这是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。

如果端口处于侦听状态,那么connect()就能成功。

否则,这个端口是不能用的,即没有提供服务。

这个技术的一个最大的优点是,你不需要任何权限。

系统中的任何用户都有权利使用这个调用。

另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套接字来加速扫描。

使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。

但这种方法的缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉。

目标计算机的logs文件会显示一连串的连接和连接出错消息,并且能很快使它关闭。

2、TCP SYN扫描:这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。

扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。

一个SYN|ACK的返回信息表示端口处于侦听状态:返回RST表示端口没有处于侦听态。

如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。

这种扫描技术的优点在于一般不会在目标计算机上留下记录,但这种方法的缺点是必须要有root权限才能建立自己的SYN数据包。

端口扫描程序的设计与实现2023简版

端口扫描程序的设计与实现端口扫描程序的设计与实现引言端口扫描程序是一种用于检查目标主机开放端口的安全工具。

通过扫描目标主机的端口,管理员可以识别潜在的安全风险,避免攻击者利用开放的端口进行入侵。

本文将介绍端口扫描程序的设计与实现过程,包括扫描原理、需求分析、架构设计以及具体实现步骤。

扫描原理端口扫描程序通过向目标主机发送一系列的探测请求,来判断主机是否响应该端口。

常用的扫描技术包括TCP全连接扫描、TCP SYN扫描、TCP ACK扫描和UDP扫描等。

- TCP全连接扫描:发送完整的TCP三次握手请求,并等待主机返回SYN-ACK确认包。

如果主机响应,则判断端口为开放。

- TCP SYN扫描:仅发送TCP的SYN请求,如果主机返回SYN/ACK则判断端口为开放。

- TCP ACK扫描:发送TCP的ACK请求,如果主机返回RST/ACK 则判断端口为关闭,否则端口为过滤。

- UDP扫描:向目标主机发送UDP数据包,如果主机响应则判断端口为开放。

需求分析在进行端口扫描程序的设计与实现之前,需要明确具体的需求。

根据实际使用场景,端口扫描程序应具备以下功能:1. 用户友好的界面,支持命令行参数和配置文件两种启动方式。

2. 支持多线程或异步扫描,提高扫描效率。

3. 可定制化的端口范围和扫描方式,用户可以根据需求自行选择。

4. 提供扫描结果输出,包括开放端口的列表和扫描进度信息。

架构设计基于以上需求,我们可以设计一个扫描器的基本架构,如下所示:scanner.py 主程序入口scanengine.py 扫描引擎,负责处理扫描逻辑portscanner.py 端口扫描器,封装具体的扫描方法config.py 配置文件,包括端口范围等参数utils.py 工具函数,用于处理输入输出等功能具体实现步骤以下为实现端口扫描程序的具体步骤:1. 设计命令行参数和配置文件,用于设置扫描目标和扫描参数,如端口范围和扫描方式。

端口扫描器与扫描方式

端口扫描器与扫描方式10.1 扫描器与扫描方式作为一切的开始,扫描是必须掌握的,从本章开始,我们就来看看在成功获取对方AP 的WEP或者WPA-PSK密码,并成功连接至对方的无线网络后,涉及的一些黑客渗透使用的工具和技术。

这部分内容和传统的有线网络黑客攻击技术基本一致,所以大家可以借鉴的资料应该有很多,这里就看看一些典型的内容!当然,下述内容依然以无线攻防测试中常用到的BackTrack4 Linux系统为例。

10.1.1 NMAP扫描器我们先来看看全球最为强大和有名的扫描器之--NMAP。

这款被评为全球100强黑客工具之一的高级扫描器不但支持标准、隐秘及各种如FIN、NULL、Xmas 扫描,甚至还可以通过对目标IP的指定端口探测来获得其对应服务的标识信息。

此外由于这款工具是开源的,所以很多民间自发的及各种商业化的扫描工具中都能看到其身影,比如常见的XScan、流光、Nessus等。

目前的最新版本为5.50。

NMAP原来是用于UNIX系统的命令行应用程序。

自2000年以来,这个应用程序就有了Windows版本。

现在我们来学习NMAP经典的几个扫描功能。

1.判断主机是否Alive(在线)这令功能极其有用,可以说在渗透到了内网之后,黑客都会先做的就是这一步,判断当前网络中有哪些主机在线。

由于NMAP发送的ICMP报文与Ping命令极为相似,所以下面的命令式可以探测到防火墙后面的主机,尤其是那些没有禁止ICMP协议的软件防火墙,下述方法成功率高达95%以上且不会引起防火墙报警,具体命令如下:其中,-sP这就是常说的Ping扫描。

按【Enter]键后,可以看到图10-1所示的内容,其中,可以看到很多IP显示为Host is up,意思是这个IP的主机当前是开机状态,而该主机当前虽然已经安装了卡巴斯基安全套装,但并没有提示遭到扫描。

2,端口扫描作为扫描器最主要的功能当然是扫描端口了。

NMAP支持很多种扫描方式,从常见的T 扫描、SYN半开式扫描到Null 扫描、Xmas圣诞树扫描及Fin标记位扫描等,根据不同的网络环境、不同的主机对象有着不同的选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南商学院《面向对象程序设计》课程设计报告题目多线程端口扫描器姓名: 吴虎学号: 070920109专业: 计算机科学与技术班级: 计科0703指导教师: 杭志职称: 讲师计算机与电子工程学院2009年6月课程设计评审表目录1 设计任务与要求 (4)2 系统功能描述 (4)2.1功能概述 (4)2.2本系统要实现的功能 (4)3 系统总体设计 (5)3.1总体分析 (5)3.2界面设置构思图 (5)3.3界面使用设置构思 (5)3.4后台设计构思 (6)4 系统详细设计 (7)4.1界面设计 (7)4.2界面设计图 (7)4.3后台设计 (8)5 实现与测试 (11)5.1运行要求与环境 (11)5.2运行程序流程图 (12)5.3运行界面 (13)6 设计总结 (15)参考文献 (16)附件 (16)多线程端口扫描器1 设计任务与要求加深对《Java面向对象程序设计》课程所学知识的理解,进一步巩固Java语言的语法规则。

分析系统的可行性,让系统有一个明确的方向,使开发更具合理性,并能分析出系统的具体流程,为后面的开发做好铺垫。

明确本次课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。

通过编写一个基于Java的应用系统综合实例,来掌握Java语言编程技巧。

并学会编制结构清晰、风格良好的Java语言程序,从而具备解决综合性实际问题的能力,学会使用Java编程工具,如EditPlus,Eclipse等。

2 系统功能描述2.1 功能概述多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP 地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。

IP设置应为所在主机的IP地址,起始端口和结束端口应为0~65535之间的一个数,且起始端口应小于结束端口的大小。

线程数为0~200之间的一个数。

点击开始后就会运行,直到扫描完毕显示出开放端口,如果没有开放端口,则只显示扫描完毕。

2.2 本系统要实现的功能①端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。

②图像显示功能:显示界面图形。

③多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。

④异常抛出功能:对于明显的错误,能提示出错误的类型并结束程序的运行。

3 系统总体设计3.1 总体分析本程序分为前后台系统,后台系统用于扫描主机开放端口,并把节扫描的数据送至前台窗口显示;前台要显示扫描的结果,所以应为一个窗口,这个窗口应能够设置主机的IP地址,设置端口的开始端口、结束端口和线程数,并且还能够显示扫描的状态。

在中央是显示结果的窗体。

本程序还应能够有控制扫描的状态命令,附加设置最小化和关闭按钮。

3.2 界面设置构思图图1 系统构思图3.3 界面使用设置构思当出现如图所示的界面时,填写好要扫描的IP地址,需要扫描的端口范围和线程数,单击命令提示按钮就可以开始扫描,扫描结果就会显示在中间的扫描结果显示区域,在扫描状态显示区就会显示是否扫描完毕。

流程图如下:图2 系统构思流程图3.4 后台设计构思后台系统使用Scanner和Scan类,创建前台布局和创建扫描端口、事件处理,并且能对简单的错误进行判断,显示错误原因。

调用数据处理包,处理异常情况;调用皮肤包,美化显示窗口。

4 系统详细设计4.1 界面设计本程序界面图形设计要能清楚显示扫描后的结果,并且能很好的体现出界面的整洁大方,但并不失去吸引人眼球的画面,所以在做界面的时候考虑了界面的色彩,并且添加了皮肤,界面上面的字体设置和windows窗口设置一样采用宋体,界面上的按钮不设置过多的按钮,仅设置有必要的按钮即可,界面设置大方。

使用的时候有默认的IP地址、需要扫描的端口和线程数,如果需要扫描其他主机,只需要填写好要扫描的主机的IP地址,需要扫描的端口范围和线程数,单击命令提示按钮就可以开始扫描,扫描结果就会显示在中间的扫描结果显示区域,在扫描状态显示区就会显示是否扫描完毕。

4.2 界面设计图本程序采用小窗口形式,外围大小为170mm*90mm,字体采用宋体五号,结果显示区域框架大小为160mm*45mm,底色为粉红,结果显示字幕为主机地址加开放端口。

添加个性皮肤。

其余地方设置按钮和扫描的主机地址、端口和线程数。

设计的预计页面图形如图:显示粉红底色添加个性皮肤图3 系统界面设计图4.3 后台设计本程序使用了为主要的Scanner类和Scan类。

Scan类的作用是创建线程扫描端口,然后把结果显示到前台。

Scanner类的作用是构造前台布局,调用Scan类添加事件处理,对输入进行错误判断,如果输入不在允许的范围之内则显示相关错误。

在本程序中用到了网络编程的两个类,下面介绍这两个类的常用方法。

InetSocketAddress类构造方法如下:●InetSocketAddress(InetAddress addr, int port):根据IP 地址和端口号创建套接字地址。

●InetSocketAddress(int port):创建套接字地址,其中IP 地址为通配符地址,端口号为指定值。

●InetSocketAddress(String hostname, int port):根据主机名和端口号创建套接字地址。

Socket类常用方法如下:●Socket():通过系统默认类型的SocketImpl 创建未连接套接字●Socket(InetAddress address, int port):创建一个流套接字并将其连接到指定IP 地址的指定端口号。

●void bind(SocketAddress bindpoint):将套接字绑定到本地地址。

●void close():关闭此套接字。

●void connect(SocketAddress endpoint):将此套接字连接到服务器。

●void connect(SocketAddress endpoint, int timeout):将此套接字连接到具有指定超时值的服务器。

●boolean isClosed():返回套接字的关闭状态。

●boolean isConnected():返回套接字的连接状态。

本程序还调用其他的一些类和包,比如软件包java.awt.color 、java.awt.event、io.IOException、Javax.Swing、jvnet.substance.*。

●java.awt.color包的的描述:提供用于颜色空间的类。

它包含了基于国际色彩联盟(ICC) 配置文件格式规范的颜色空间实现。

它还包含了基于ICC 配置文件格式规范的颜色配置文件。

用来使界面更加具有色彩。

Result.setBackground(Color.PINK);//设置窗口为粉红●java.awt.event 的描述:提供处理由AWT 组件所激发的各类事件的接口和类。

事件由事件源所激发,向事件源注册的事件侦听器可接收有关特定事件类型的通知。

此包定义了事件和事件侦听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松的便捷类。

在本程序中使用:public void actionPerformed(ActionEvent e) {String cmd = e.getActionCommand();if(cmd.equals("Start"))…………}●io.IOException包的描述:用来处理io的错误,不仅仅是文件读写,还包括很多stream的读写,而且throws是用来放在函数定义的函数体前函数名后的,表示这个函数将会在出现异常的书后会抛出io异常,所以在以后的程序中调用这个函数的时候就必须用try和catch来捕获异常,否则编译会报错,这主要涉及到java的安全机制。

本程序中使用如下:try {minPort = Integer.parseInt(PortStart.getText());maxPort = Integer.parseInt(PortEnd.getText());threadNum = Integer.parseInt(ThreadNum.getText());} catch (NumberFormatException e1) {DLGError.setBounds(300, 280, 299, 120);DLGINFO.setText("错误的端口号或线程数!端口号和线程数必须为整数!");DLGINFO.setBounds(10, 20, 280, 20);OK.setBounds(110, 50, 60, 30);DLGError.setVisible(true);return;…………}●Javax.Swing集合描述:由所有Java图形用户界面(GUI)组件所构成,可运行在任一支持Java虚拟机(JVM)的本地平台上。

由于这些组件全都是用Java语言编写的,因此它们可以提供比本地平台GUI组件更多的功能。

(与抽象窗口工具箱对比)。

Java Swing是Java Foundation Classes(JFC)的一部分。

在Swing中,Sun开发了一个经过仔细设计的、灵活而强大的GUI 工具包。

Swing是在AWT组件基础上构建的。

它所提供的功能要比AWT提供的更为广泛。

它也是Java技术的一种标准配置。

Swing模型一个Java GUI通常由顶层容器、中间容器以及多个原子组件组成。

每个原子组件或容器都可能触发相应事件的产生。

容器是一类能够在其中容纳其他组件的特殊组件。

Swing的GUI组件类是按照类属层次以树状结构进行组织的。

在这个树的最顶层,即树的根部,使一个最基本的容器类,被称为顶层容器。

Swing 提供了三个通用的顶层容器类JFrame,JDialog和JApplet。

JFrame提供了基于窗体的应用程序,JDialog提供对话框形式的界面,JApplet提供Java小应用程序的界面形式。

在顶层容器下是中间容器,用于容纳其他的组件。

通常窗格本身在显示界面中是看不到的。

面板类Panel是一种中间容器,它的唯一作用是使组件更容易定位。

顶层容器通过getContentPane()方法获取内部的一个内容窗格。

Swing包的组成:●javax.swing:基本Swing包,包括Swing容器、组件及相关设置的类和接口。

●javax.swing.border:包括与边界设计相关的类和接口。

●javax.swing.colorchooser:与颜色选择相关的类和接口。

相关文档
最新文档