基于python的高校服务器信息的网络空间资源分类 附完整代码数据可作为毕设课设

简介: 基于python的高校服务器信息的网络空间资源分类 附完整代码数据可作为毕设课设

本次研究采用 nmap 获取清华大学和北京大学的服务器的全部实时信息。Nmap 作为一种高效的网络连接端扫描工具,能够充分扫描服务器开放的网络服务端,并确定运行在各自连接端的服务。由于 Nmap 提供了极为方便快捷的服务器信息获取方式,能够使本研究团队在有限的时间内获取足够多的可供分析的信息,因而在本次研究中关于网络空间资源获取方面所采用的主要方法即为 nmap。


本次研究从清华大学、北京大学、中国人民大学、复旦大学、上海交通大学等五所高校获取其服务器信息。其中,以清华大学和北京大学两所高校共搜集的 20 余万条信息和检所获取的 6 万余条信息作为样本进行分析。其中两校在端口数量方面的情况如下图所示。


00b3a45fa37922ee6cb530a2d1db18cf.jpg


图 1 清华大学、北京大学端口数量情况


为了提供更好的检索服务,本研究团队除了通过搭建前端展示两所高校检所得到的全部服务器信息外,还通过每日更新保持信息的时效性。考虑到更新数据的规模和速度,因而重点以清华大学、北京大学两所高校的服务器信息作为样本进行整理、展示和分析。


本次研究所选择的网络资源主要是服务器信息,这一选择的主要原因是服务器信息在网络空间资源中的代表性,同时也是基于对现实因素的考虑。


为了保持网络资源的更新频率,因而对于网络资源的数据量和获取速度提出了很高的要求,而主机、路由器等其他资源信息的获取难度较大,一方面主要是爬取更详细的服务信息存在较大的不确定性,容易导致不同时期爬取所得的信息存在较大的差别,另一方面则是爬取主机、路由器等速度较慢,在本次研究中每次爬取需要耗时9s以上,甚至在100s内都无法返回结果,因而难以满足本次实验对于样本数量规模的要求。


即便如此,仅清华大学和北京大学的服务器信息获取仍然面临数量过大的问题。需要获取的IP地址区段为59.66.0-255.0-255和166.111.0-255.0-255,使用nmap的情况下,每个平均耗时仍然在5s左右,在串行情况下每次更新的总耗时超过110小时,信息量庞大、获取耗时大。


2.3 未能找到的网络资源原因分析


即便基于现实因素和实际需要的考虑,我们选取相对更容易稳定获取的两所高校的服务器信息作为研究对象,但在搜集这部分网络资源的过程中,仍然存在部分资源无法找到的情况。主要原因包括以下三点:


没有主机。寻找到的资源可能是一个空IP,因而无法返回符合要求的服务器信息;


访问权限问题。有些服务器没有完全开放,因而存在对于访问权限的限制,这一点在高校中仍然是比较普遍的,因而访问权限问题同样部分阻碍了获取全部网络资源信息;


防火墙问题。由于目前高校一般都拥有自身的校园网,很多服务器仅面向校园网开放,对于外网设置有防火墙,本研究团队难以获取这些服务器的网络资源。


仍然有其他如网络状况等原因,在此不再列举。尽管有部分网络资源由于种种原因未能获取,但仍然不影响本次研究的推进。


2.4 实验问题


在本次研究过程中,也存在一些难以避免的问题,在研究结束时仍然没有获得理想的解决方案。这些问题的出现,一些是由于网络状况所致,一些则是由于服务器等各种原因所致。主要遇到的问题包括:


nmap稳定性不足。在数据量较大的时候,nmap会存在跑网站不稳定的情况,为了提高数据搜集的效率,在研究所使用的爬取脚本中将时间上限设为120s。而在这种情况下,nmap在获取一些服务器资源的过程中,仍然存在超时的情况,且有些时候超时原因并不明确;


执行条件和服务器状态不稳定。由于执行条件的不稳定,导致返回结果存在很大的差距。如在实验中,同样的指令分别爬取IP和100个IP一起爬取所获得的结果经常完全不同,而即便是100个IP一起爬取,每次爬取所获得的结果有时也是不完全一样的、甚至存在比较大的差别。


这些实验问题的出现导致网络资源的获取并不像预想中顺利;且一些问题出现原因不明也影响了获取的服务器信息的不稳定。


3 网络空间资源的分类


在获取网络空间资源的基础上,本研究团队进行了符合要求的分类。


分类标准需要符合正交性、可用性、完备性等特点,尤其是正交性特点,即所有分类需要涵盖全部信息;基于这一点,我们考虑的几种分类形式均为排他性或采用完全对立的指标。


3.1 分类标准


根据检索得到的数据量,本研究团队采用了如下四种符合要求的分类标准:


基于端口状态。将获取的三万余端口的状态根据返回信息分为open、closed、filtered三类,覆盖全部端口的状态情况;


基于网络资源位置。我们根据服务器的位置,将网络资源的位置分为清华大学、北京大学、中国人民大学、复旦大学、上海交通大学等五类,并将展示的网络资源样本分为清华大学和北京大学两类。这种分类方式看似是预设性的,但是这种分类的原则却并不是局限的,在其他网络资源中基于位置进行分类同样是一种基本的分类标准;


基于网络设备的端口空闲程度。为了评价网络设备的端口空闲程度,我们所衡量的指标为服务器所开放的端口数量,在对我们获取的资源进行分析之后,我们将边界值定为5个,即当开放的端口数大于或等于5个时,我们定义这个网络资源为忙碌资源,相应的,当开放的端口数小于5个时,我们定义这个网络资源为空闲资源;


基于网络设备的服务名称。网络设备所提供的服务有各式各样的名称,仅我们搜集到的数据而言,网络设备的服务名称就达上百个。


3.2 分类结果

3.2.1 基于端口状态


根据检所得到的资源信息来看,北京大学的端口开放数量不足总数量的一半,而清华大学的这一比例接近 70%。


419cb4d1927251787d35407d8ec3e3d3.jpg

图 2 北京大学端口状态情况


f9c0c6367beac32338369a9286c08141.jpg

图 3 清华大学端口状态情况


3.2.2 基于网络资源位置


如前章所展示的情况,清华大学服务器的网络端口数量超过28000个,而北京大学不足清华大学的十分之一,为2500个。


3.2.3 基于网络设备的端口空闲程度


根据我们的分类标准,空闲资源比例大于忙碌资源比例,按照服务器所开放的端口数量来看,开放 1 个端口的情况最为普遍,而开放端口数量最多的服务器所开放的端口数量达到 100 个。

1c94c96a268ffbbe1ea0a374054a0a0e.jpg


图 4 网络设备的端口空闲程度统计表


3.2.4 基于网络设备的服务名称


网络设备所提供的服务名称非常多样,在上百种被统计在内的服务名称中,使用最多的几种服务名称为 unlocked, locked, Ftp, lis, Ms 等。下图根据服务名称出现频次制成。


efa2173671ffb0e9589e990c41fc054c.png

图 5 网络设备的服务名称频次图


4 前端展示及操作


本次研究搭建的展示前端的链接为:


http://www.misscut.cn:8081


4.1 IP 地址检索


点击进入链接后,显示的为“IP地址检索”界面,即可在文本框中直接输入IP地址搜索器所在位置和拥有的端口数量。


67bc43df88ba4d49bf6d94921ee351f2.jpg

检索成功的结果:

aee90b155da6db4cad0d4d65e34b57e3.jpg


检索失败的结果:

55577bb5f6c96adcded8b34b2f1c4262.jpg


4.2 分类检索


分类检索界面可以针对服务器名称、IP地点、服务器状态等信息进行检索。


值得注意的是,在检索时,如果不加限制地检索清华大学的所有服务,会因为数据量较大、前端渲染表格时间长,因而展示效果较差。建议使用该分类检索的时候,在相对较小的范围内搜索。


除此以外,分类检索中服务器忙碌状态和是否加密两项需要至少选择一项方能完成检索。


分类检索界面为:


9f990fe57f703e02117c211a281c1b1b.jpg

按服务器名称选择检索:

4e8cae38a5e620c8ca499ba67c7d663f.jpg


按服务器名称检索得到的结果:


8d4ec16d31b6e8bd572dbcec6a30ad6f.jpg

按IP地点选择搜索:

31b02e66911de263d3409d64c629cbc1.jpg


按IP地点检索得到的结果:

51aebb2010658708324d2c3045e221a1.jpg


按服务器状态选择检索:

420383eb9fa46bcd5918fbbf55f75a16.jpg


按服务器状态检索得到的结果:

c3c5f792850da74f07b25909ef9460b7.jpg


一种相对全面的检索示意:

32fc6fb6976d064e900d9c292f8fa9ad.jpg


另一种相对全面的检索示意:

804b6d09b78055d776cee5658b166b9c.jpg


一种暂无数据结果的检索示意:

2ed1ebf89a7f8112c5e2370b82d6776d.jpg


5 总结


在本次研究中,我们利用nmap手段,基于以高校服务器数据为代表的网络空间资源,提出了符合正交性等要求的四种网络空间资源分类方法,并将获取的服务器信息资源和分类情况的结果以每日更新的方式展现在前端。


完整代码:https://download.csdn.net/download/qq_38735017/87409913


相关文章
|
9天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
19 1
|
10天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
11天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
14天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
17天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
9天前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
19 0
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
4天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
4天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!