CN116827900B - 一种基于Python实现内网终端溯源的方法及系统 - Google Patents
一种基于Python实现内网终端溯源的方法及系统 Download PDFInfo
- Publication number
- CN116827900B CN116827900B CN202311108229.2A CN202311108229A CN116827900B CN 116827900 B CN116827900 B CN 116827900B CN 202311108229 A CN202311108229 A CN 202311108229A CN 116827900 B CN116827900 B CN 116827900B
- Authority
- CN
- China
- Prior art keywords
- mac
- python
- database
- value
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000008859 change Effects 0.000 claims abstract description 9
- 238000012423 maintenance Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 5
- 239000000470 constituent Substances 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 6
- 230000005856 abnormality Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 27
- 238000007726 management method Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于数据库存储并查询技术领域,公开了一种基于Python实现内网终端溯源的方法及系统。该方法由解决IP地址冲突与占用的故障点出发,编写自动执行的python运维脚本,定期存储IP与MAC的对应关系,具体包括:将要获取ARP信息的地址段导出到excel表格中,通过读取表格内的数据,获取到要采集信息的设备IP,然后将要获取的信息,通过在python里调用os.popen函数,拼接为字符串;连接数据库对于历史数据的处理,对IP与MAC地址变更情况的处理。本发明通过实时记录IP与MAC的对应关系,可以达到解决大型网络中IP地址冲突的问题,能够更快地检测网络中的异常,提升网络的稳定性。
Description
技术领域
本发明属于数据库存储并查询技术领域,尤其涉及一种基于Python实现内网终端溯源的方法及系统。
背景技术
随着网络的规模越来越庞大,网络中的终端设备种类繁多,如何对越来越复杂的网络进行有效的管理,内部网络中存在ip地址通DHCP动态分发的设备需要跟踪记录ip地址mac地址对应关系,通过记录进行溯源。从而提供高质量的网络服务已成为网络管理所面临的最大挑战。
在当下,TCP/IP网络中应用最为广泛的网络管理协议是简单网络管理协议SNMP。通过SNMP获取网络设备上的ARP信息,然后实时存储到数据库中,可以帮助网络管理员更好地控制网络,有助于更好地对网络进行管理与维护。
通过上述分析,现有技术存在的问题及缺陷为:现有技术在设计过程中使用了MD5的哈希算法,极小MD5碰撞产生相同值,但是实地使用场景下如存在设备数量庞大情况,不能保证无碰撞的值产生。使得网络中的异常检测速度慢,网络的稳定性差。
发明内容
为克服相关技术中存在的问题,本发明公开实施例提供了一种基于Python实现内网终端溯源的方法及系统。
所述技术方案如下:一种基于Python实现内网终端溯源的方法,该方法由解决IP地址冲突与占用的故障点出发,编写自动执行的python运维脚本,定期存储IP与MAC的对应关系,具体包括以下步骤:
S1,查询能够获取设备上IP和MAC对应关系的OID值,登录机场内综合网子网中作为网关设备的交换机,通过SNMPwalk的命令,获取机场内上网地址段的ARP信息;
S2,将要获取ARP信息的地址段导出到excel表格中,通过python的openpyxl库中的load_workbook函数加载表格对象,通过for循环挨个读取,获取到要采集信息的设备IP,然后将要获取的信息,通过执行result_device = os.popen(snmp_order).read().split("\n"),在python里调用os.popen函数,拼接为字符串;
S3,连接数据库;
S4,对于历史数据的处理,对 IP与MAC地址变更情况的处理。
进一步的,在步骤S2中,在python里调用os.popen函数的方法包括:snmp_order变量将要查询的设备IP信息,访问设备的团体字,以及设备上要获取的ARP信息:snmp_order=f'snmpwalk -Ox -v 2c -c {community} {ip_switch} {rate}',然后调用os.popen,执行命令;
然后获取到设备上的ARP信息;
再通过查询数据库中的数据,判断获取到的信息是否已经存储在数据库中,根据得到的结果,进行对 IP与MAC地址变更情况的处理。
进一步的, snmp_order变量包括:使用SNMPv2c协议,指定超时时间(-t)为5、重试次数(-r)为3、团体字符串(-c)为community,ip地址为指定设备地址,读取的内容为设备上的ARP信息的SNMP walk命令;
community的值包括:
场内设备的SNMP读团体字;
rate的值,为获取设备上IP地址和MAC地址对应表的OID值;
ip_switch,为读取excel中的网络设备的IP地址。
进一步的,在步骤S3中,连接数据库包括:在远端服务器上建立network的数据库,数据库中的ip_mac表,除包含有ID、IP、MAC,还增添MD5列,用于对数据库里记录的IP与MAC对应关系进行增删改查;
构造sql语句,使用python里的hashlib库,通过m=hashlib.md5()创建一个MD5哈希对象,然后使用哈希函数中的hexdigest()方法,以十六进制的形式返回最终的哈希值,构造一个MD5算法的函数,通过python调用pymysql.connect功能,连接到数据库中。
进一步的,在步骤S4中,对IP与MAC地址变更情况的处理包括:用数据库连接工具连接数据库将ip_mac表中增添first_time、end_time与status列,status列默认置1,表示这个IP与MAC的对应关系有效;
在获取到设备上的ARP信息后,对表中原有的数据进行查询。
进一步的,对表中原有的数据进行查询包括:将新获取到的ip与mac去掉字符,拼接成值为ip+mac的字符串,调用提到的构造出来的MD5的算法,计算得到的MD5值,查询ip_mac表,如果这个值在表中,则认为这个对应关系未发生改变,通过sql语句中的update语句,将end_time更新为脚本的执行时间。
进一步的,对表中原有的数据进行查询包括:当新获取到的对应关系计算得到的MD5值不在表中,通过sql语句中的select语句,以新获取到对应关系里的mac作为查找条件,搜索这个值对应的IP。
进一步的,对表中原有的数据进行查询包括:IP在表中,而MD5值与之前不同, IP与MAC的对应关系发生变化,原本表中的数据已经失效,将status置0,并修改end_time,然后将新的对应关系写入表中;
IP不在表中,这条对应关系未被记录,直接添加到表中。
本发明的另一目的在于提供一种基于Python实现内网终端溯源的系统包括:
ARP信息获取模块,用于通过代码获取机场内上网地址段的ARP信息;
字符串拼接模块,用于将要获取ARP信息的地址段导出到excel表格中,通过读取表格内的数据,获取到要采集信息的设备IP,然后将要获取的信息,通过在python里调用os.popen函数,拼接为字符串;
数据库连接模块,用于在远端服务器上建立network的数据库;
历史数据处理模块,用于对于历史数据的处理,对 IP与MAC地址变更情况的处理。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明使用SNMPwalk获取到网络设备上的ARP信息,通过python连接到数据库,将终端的IP与MAC的对应关系操作网络设备获取ARP信息,结合数据库存储并查询。通过将获取到的IP与MAC的对应关系组合起来,对这个合成的字符串进行MD5运算,由于MD5的压缩性、抗修改性和抗碰撞性,在这里,将这个MD5值作为查询是否已经有ARP记录的查询条件。
通过实时记录IP与MAC的对应关系,可以达到解决大型网络中IP地址冲突的问题,能够更快地检测网络中的异常,提升网络的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;
图1是本发明实施例提供的基于Python实现内网终端溯源的方法流程图;
图2是本发明实施例提供的基于Python实现内网终端溯源的系统图;
图中:1、ARP信息获取模块;2、字符串拼接模块;3、数据库连接模块;4、历史数据处理模块。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
与本发明相关的技术词语包括:IP(Internet Protocol)是一种网络协议,用于在网络中标识计算机;MAC地址(Media Access Control Address)用于在网络中标识网卡。ARP(Address Resolution Protocol)是一种网络协议,用于在网络中实现IP地址和物理地址之间的映射。它可以帮助网络管理员更好地控制网络,提高网络的可靠性和安全性,减少网络故障的发生,提高网络的稳定性。
基于SNMP的网络管理体系结构中包含4个主要组成部分:网络管理站NMS(NetworkManagement Station):NMS通常是一个独立的设备,运行网络管理应用程序。网络管理应用程序至少能够提供一个人机交互界面,网络管理员通过它完成绝大多数网络管理工作。
SNMP代理器(Agent):Agent是驻留在被管理设备的一个软件模块,主要负责接收和处理来自NMS的请求报文,并形成响应报文,返回给NMS;在一些紧急情况下,它会主动发送trap报文,通知NMS。
SNMP协议:SNMP协议属于TCP/IP网络的应用层协议,用于在NMS和被管理设备间交互管理信息。
管理信息库MIB(Management Information Base):MIB是一个被管理对象的集合,是NMS同Agent进行沟通的桥梁,可以使网管软件和设备进行标准对接。每一个Agent都维护这样一个MIB库,NMS可以对MIB库中对象的值进行读取或设置。
MIB以树状结构进行存储,树的叶子节点表示管理对象,它可以通过从根节点开始的一条惟一路径来识别,这也就是OID(Object Identifier)。MIB文件一旦发布,OID就和被定义的对象绑定,不能修改。
SNMPwalk是一种SNMP(简单网络管理协议)工具,可以用于Linux系统中检索网络设备上的MIB(管理信息库)数据。它可以用于收集网络设备的状态信息,以及检查网络设备的配置参数和统计数据。
MD5(Message-Digest Algorithm 5)是一种散列算法,用于生成一个128位的散列值(或消息摘要),用于确保消息的完整性,防止篡改。
实施例1, 以某国际机场为例,网络中的节点数量和连接数量多,网络结构复杂。大型的网络系统可以支持数量更多的用户,提供更大规模的服务,并且可以支持大量的数据传输。但是,网络规模庞大也有一些缺点,比如网络维护和管理成本高,网络安全性也受到更大的威胁,网络中的故障也更容易发生。因此,本发明创新的提出由解决IP地址冲突与占用的故障点出发,编写自动执行的python运维脚本,定期存储IP与MAC的对应关系,对解决IP地址冲突与占用问题提供了有效的支持。
如图1所示,本发明实施例提供的基于Python实现内网终端溯源的方法包括以下步骤:
S1,查询能够获取设备上IP和MAC对应关系的OID值,登录网络中作为网关设备的交换机,通过SNMPwalk的命令,获取机场内上网地址段的ARP信息;
S2,将要获取ARP信息的地址段导出到excel表格中,通过python的openpyxl库中的load_workbook函数加载表格对象,通过for循环挨个读取,获取到要采集信息的设备IP,然后将要获取的信息,通过执行result_device = os.popen(snmp_order).read().split("\n"),在python里调用os.popen函数,拼接为字符串;
示例性的,在python里调用os.popen函数中的参数snmp_order,其构成部分包含将要查询的设备IP信息,访问设备的团体字,以及设备上要获取的ARP信息:snmp_order=f'snmpwalk -Ox -v 2c -c {community} {ip_switch} {rate}',然后调用os.popen函数,执行命令;
然后获取到设备上的ARP信息;
再通过查询数据库中的数据,判断获取到的信息是否已经存储在数据库中,根据得到的结果,进行对 IP与MAC地址变更情况的处理。
示例性的,将要获取ARP信息的地址段导出到excel表格中,通过定义一个名为get_xlsx()的函数,利用openpyxl库中的load_workbook函数加载当前目录下存放着机场上网地址段的网关交换机IP的excel对象,然后使用active属性获取默认活动的工作表对象。使用max_row获取工作表的最大行数,通过循环,将其值添加到ipaddr列表中,获取到要采集信息的设备IP,然后将要获取的信息,通过在python里调用os.popen函数,拼接为字符串;
获取到要采集信息的设备IP的基本流程为:设备IP均存储在程序执行目录下的一个名叫ip_switch.xlsx的excel文件下。在函数里定义一个列表,名为ipaddr,初始值为空。将表格的最大的行数赋值给max_num变量,然后执行一个for循环,从表格的第一行开始,读取表格中的每一行的数据并写入到上文提到的ipaddr这个列表里,一直写到最后一行为止。最终这个函数返回ipaddr这个列表,ipaddr列表里的值即为获取到的要采集信息的设备的IP。
其中,具体的在python里调用os.popen函数的方法包括:snmp_order变量将要查询的设备IP信息,访问设备的团体字,以及设备上要获取的ARP信息组合成一条命令,通过os.popen执行,然后获取到设备上的ARP信息。再通过判断获取到的信息,进行下一步的处理。
其中,community这个变量的值,是目前场内设备的SNMP读团体字;rate的值为获取设备上IP地址和MAC地址对应表的OID值;ip_switch为读取excel中的网络设备的IP地址。因此snmp_order变量的含义包括:使用SNMPv2c协议,指定超时时间(-t)为5、重试次数(-r)为3、团体字符串(-c)为community,ip地址为指定设备地址,读取的内容为设备上的ARP信息的SNMP walk命令。
S3,连接数据库。所述连接数据库包括:在远端服务器上建立network的数据库,数据库中的ip_mac表,除包含有ID、IP、MAC,还增添MD5列,用于对数据库里记录的IP与MAC对应关系进行增删改查;
构造sql语句,使用python里的hashlib库,通过m=hashlib.md5()创建一个MD5哈希对象,然后使用哈希函数中的hexdigest()方法,以十六进制的形式返回最终的哈希值,构造一个MD5算法的函数,通过python调用pymysql.connect功能,连接到数据库中。
示例性的,在远端服务器上建立名为network的数据库,数据库中的ip_mac表,除了包含有常规的ID、IP、MAC等属性,还增添了MD5 (IP&MAC)列,用于对数据库里记录的IP与MAC对应关系进行增删改查工作。构造sql语句,使用python里的hashlib库,通过m=hashlib.md5()创建一个MD5哈希对象,然后使用“m.hexdigest()”方法获取最终的哈希值,构造一个可以实现MD5算法的函数,通过python调用pymysql.connect功能,连接到数据库中。将新获取到的ip与mac去掉字符,拼接成值为ip+mac的字符串,调用上文提到的构造出来的MD5的算法,计算得到的MD5值,存入MD5列中。
S4,对于历史数据的处理,对 IP与MAC地址变更情况的处理;对IP与MAC地址变更情况的处理包括:用数据库连接工具连接数据库,将ip_mac表中增添first_time、end_time与status列,status列默认置1,表示这个IP与MAC的对应关系有效;
在获取到设备上的ARP信息后,对表中原有的数据进行查询。
对表中原有的数据进行查询包括:将新获取到的ip与mac去掉字符,拼接成值为ip+mac的字符串,调用提到的构造出来的MD5的算法,计算得到的MD5值,查询ip_mac表,如果这个值在表中,则认为这个对应关系未发生改变,通过sql语句中的update语句,将end_time更新为脚本的执行时间。
对表中原有的数据进行查询包括:当新获取到的对应关系计算得到的MD5值不在表中,通过sql语句中的select语句,以新获取到对应关系里的mac作为查找条件,搜索这个值对应的IP。
示例性的,通过SNMP walk获取到设备上的ARP信息的工作,接下来要处理的是对于在长期执行过程中,出现的IP与MAC地址变更情况的处理。因此,在ip_mac表中增添first_time、end_time与status列,status列默认置1,表示这个IP与MAC的对应关系是有效的。在新一轮的执行过程中,获取到设备上的ARP信息之后,会对表中原有的数据进行查询:通过sql语句对数据库查询之后,将查询得到的值放到两个变量中。Data_table表示的是从原始数据表中查到的目前数据仍然有效的值的输出结果,data_ip_mac则为从ip_mac表中查询到的我们需要的ip,mac以及ip+mac的hash值等信息。然后通过for循环,将在ip_mac表中查询到的hash_id与ip分别放入list_hash和list_ip这两个数组中。
接下来对获取到的数据逐个便利并判断,当新获取到的对应关系计算得到的MD5值在表中,则认为这个对应关系未发生改变,更新end_time为脚本的执行时间;
当新获取到的对应关系计算得到的MD5值不在表中,搜索这个值对应的IP。
IP在表中,而MD5值与之前不同,说明IP与MAC的对应关系发生变化,原本表中的数据已经失效,故将status置0,并修改其end_time,然后将新的对应关系写入表中。
IP不在表中,说明这条对应关系未被记录,直接将其添加到表中。
以及上述实施例的方法,进行了实际应用,结果演示:由于SNMP walk是Linux系统中的指令,因此,通过WINSCP登录Linux服务器,将代码复制到Linux系统中。
通过上述实施例,本发明预期收益:可以提高工作效率,降低运维成本;通过采集用户的IP与MAC的对应关系,对于大型场地的网络运维,可以进行用户行为分析,以辅助业务决策。
商业价值:通过对IP和MAC的对应关系实时记录并跟踪,方便于监测和识别潜在的网络安全威胁,增强了网络的安全性;同时,它可以更好的进行网络管理和资源分配,提高了网络性能。
可以帮助追踪和记录安全事件的起源和传播路径。当发生安全漏洞、恶意软件感染、未授权访问等事件时,可以通过溯源功能精确定位到具体的终端设备,从而更快速地应对和处置安全事件内网终端溯源功能可以为安全事件的取证调查提供重要的数据支持。结合终端设备的日志记录和行为追踪,可以还原攻击过程、追踪攻击者的路径,并提供证据以支持后续的法律程序或纠纷解决。
实施例2,如图2所示,本发明实施例提供一种基于Python实现内网终端溯源的系统包括: ARP信息获取模块1,用于通过代码获取机场内上网地址段的ARP信息;
字符串拼接模块2,用于将要获取ARP信息的地址段导出到excel表格中,通过读取表格内的数据,获取到要采集信息的设备IP,然后将要获取的信息,通过在python里调用os.popen函数,拼接为字符串;
数据库连接模块3,用于在远端服务器上建立network的数据库;
历史数据处理模块4,用于对于历史数据的处理,对 IP与MAC地址变更情况的处理。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
上述装置/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程。
基于上述本发明实施例记载的技术方案,进一步的可提出以下应用例。
根据本申请的实施例,本发明还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本发明实施例还提供了一种信息数据处理终端,所述信息数据处理终端用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤,所述信息数据处理终端不限于手机、电脑、交换机。
本发明实施例还提供了一种服务器,所述服务器用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤。
本发明实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
以上所述,仅为本发明较优的具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于Python实现内网终端溯源的方法,其特征在于,该方法由解决IP地址冲突与占用的故障点出发,编写自动执行的python运维脚本,定期存储IP与MAC的对应关系,具体包括以下步骤:
S1,查询能够获取设备上IP和MAC对应关系的OID值,登录网络中作为网关设备的交换机,通过SNMPwalk的命令,获取机场内上网地址段的ARP信息;
S2,将要获取ARP信息的地址段导出到excel表格中,通过python的openpyxl库中的load_workbook函数加载表格对象,通过for循环挨个读取,获取到要采集信息的设备IP,然后将获取的设备IP连同已知的设备团体字和获取ARP值,按照python snmpwalk模块的使用方法组合起来,赋值给snmp_order,通过执行result_device = os.popen(snmp_order).read().split("\n"),在python里调用os.popen函数,拼接为字符串;
S3,连接数据库;
S4,对于历史数据的处理,对 IP与MAC地址变更情况的处理;
在步骤S3中,连接数据库包括:在远端服务器上建立network的数据库,数据库中的ip_mac表,除包含有ID、IP、MAC,还增添MD5列,用于对数据库里记录的IP与MAC对应关系进行增删改查;
构造sql语句,使用python里的hashlib库,通过m=hashlib.md5()创建一个MD5哈希对象,然后使用哈希函数中的hexdigest()方法,以十六进制的形式返回最终的哈希值,构造一个MD5算法的函数,通过python调用pymysql.connect功能,连接到数据库中;
在步骤S4中,对IP与MAC地址变更情况的处理包括:用数据库连接工具连接数据库,将ip_mac表中增添first_time、end_time与status列,status列默认置1,表示这个IP与MAC的对应关系有效;
在获取到设备上的ARP信息后,对表中原有的数据进行查询;
对表中原有的数据进行查询包括:将新获取到的ip与mac去掉字符,拼接成值为ip+mac的字符串,调用所述的构造出来的MD5的算法,计算得到的MD5值,查询ip_mac表,如果这个值在表中,则认为这个对应关系未发生改变,通过sql语句中的update语句,将end_time更新为脚本的执行时间;
对表中原有的数据进行查询包括:当新获取到的对应关系计算得到的MD5值不在表中,通过sql语句中的select语句,以新获取到对应关系里的mac作为查找条件,搜索这个值对应的IP;
对表中原有的数据进行查询包括:IP在表中,而MD5值与之前不同, IP与MAC的对应关系发生变化,原本表中的数据已经失效,将status置0,并修改end_time,然后将新的对应关系写入表中;
IP不在表中,这条对应关系未被记录,直接添加到表中。
2.根据权利要求1所述的基于Python实现内网终端溯源的方法,其特征在于,在步骤S2中,在python里调用os.popen函数中的参数snmp_order,其构成部分包含将要查询的设备IP信息,访问设备的团体字,以及设备上要获取的ARP信息:snmp_order=f'snmpwalk -Ox -v 2c -c {community} {ip_switch} {rate}',然后调用os.popen函数,执行命令;
然后获取到设备上的ARP信息;
再通过查询数据库中的数据,判断获取到的信息是否已经存储在数据库中,根据得到的结果,进行对 IP与MAC地址变更情况的处理;
snmp_order变量包括:使用SNMPv2c协议,指定超时时间(-t)为5、重试次数(-r)为3、团体字符串(-c)为community,ip地址为指定设备地址,读取的内容为设备上的ARP信息的SNMP walk命令;
community的值包括:
场内设备的SNMP读团体字;
rate的值,为获取设备上IP地址和MAC地址对应表的OID值;
ip_switch,为读取excel中的网络设备的IP地址。
3.一种基于Python实现内网终端溯源的系统,其特征在于,实施权利要求1-2任意一项该方法基于Python实现内网终端溯源的方法,该系统包括:
ARP信息获取模块(1),用于通过代码获取机场内上网地址段的ARP信息;
字符串拼接模块(2),用于将要获取ARP信息的地址段导出到excel表格中,通过python的openpyxl库中的load_workbook函数加载表格对象,通过for循环挨个读取,获取到要采集信息的设备IP,然后将获取的设备IP连同已知的设备团体字和获取ARP值,按照pythonsnmpwalk模块的使用方法组合起来,赋值给snmp_order,通过执行result_device =os.popen(snmp_order).read().split("\n"),在python里调用os.popen函数,拼接为字符串;
数据库连接模块(3),用于在远端服务器上建立network的数据库;
历史数据处理模块(4),用于对于历史数据的处理,对 IP与MAC地址变更情况的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108229.2A CN116827900B (zh) | 2023-08-31 | 2023-08-31 | 一种基于Python实现内网终端溯源的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108229.2A CN116827900B (zh) | 2023-08-31 | 2023-08-31 | 一种基于Python实现内网终端溯源的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116827900A CN116827900A (zh) | 2023-09-29 |
CN116827900B true CN116827900B (zh) | 2023-12-05 |
Family
ID=88127890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311108229.2A Active CN116827900B (zh) | 2023-08-31 | 2023-08-31 | 一种基于Python实现内网终端溯源的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827900B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363228A (zh) * | 2014-11-13 | 2015-02-18 | 国家电网公司 | 一种终端安全准入控制方法 |
CN110198226A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种负载均衡集群中访问请求处理方法、系统和可读介质 |
CN112003965A (zh) * | 2020-09-15 | 2020-11-27 | 中标慧安信息技术股份有限公司 | 一种基于arp协议检测局域网内设备ip冲突的方法 |
CN114844707A (zh) * | 2022-05-07 | 2022-08-02 | 南京南瑞信息通信科技有限公司 | 一种基于图数据库的电网网络安全分析方法及系统 |
CN115208606A (zh) * | 2022-03-28 | 2022-10-18 | 深圳铸泰科技有限公司 | 一种网络安全防范的实现方法、系统及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764241B2 (en) * | 2018-03-01 | 2020-09-01 | Dell Products L.P. | Address assignment and data forwarding in computer networks |
-
2023
- 2023-08-31 CN CN202311108229.2A patent/CN116827900B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363228A (zh) * | 2014-11-13 | 2015-02-18 | 国家电网公司 | 一种终端安全准入控制方法 |
CN110198226A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种负载均衡集群中访问请求处理方法、系统和可读介质 |
CN112003965A (zh) * | 2020-09-15 | 2020-11-27 | 中标慧安信息技术股份有限公司 | 一种基于arp协议检测局域网内设备ip冲突的方法 |
CN115208606A (zh) * | 2022-03-28 | 2022-10-18 | 深圳铸泰科技有限公司 | 一种网络安全防范的实现方法、系统及存储介质 |
CN114844707A (zh) * | 2022-05-07 | 2022-08-02 | 南京南瑞信息通信科技有限公司 | 一种基于图数据库的电网网络安全分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116827900A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588700B2 (en) | Component detection and management using relationships | |
CN108183916B (zh) | 一种基于日志分析的网络攻击检测方法及装置 | |
CN103607385B (zh) | 基于浏览器进行安全检测的方法和装置 | |
CN107196895B (zh) | 网络攻击溯源实现方法及装置 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN108197200A (zh) | 日志追踪方法、装置、计算机设备和存储介质 | |
CN112671553A (zh) | 基于主被动探测的工控网络拓扑图生成方法 | |
CN112818307A (zh) | 用户操作处理方法、系统、设备及计算机可读存储介质 | |
CN113507461B (zh) | 基于大数据的网络监控系统及网络监控方法 | |
CN109361574B (zh) | 基于JavaScript脚本的NAT检测方法、系统、介质和设备 | |
CN111314450A (zh) | 数据的传输方法、装置、电子设备和计算机存储介质 | |
CN108924043A (zh) | 系统监控方法、网关通信、网关装置、业务处理设备 | |
CN113542292A (zh) | 基于dns和ip信誉数据的内网安全防护方法及系统 | |
CN114338419B (zh) | 一种IPv6全球组网边缘节点监测及预警方法及系统 | |
US11768889B1 (en) | Evaluating configuration files for uniform resource indicator discovery | |
CN116827900B (zh) | 一种基于Python实现内网终端溯源的方法及系统 | |
CN114257530A (zh) | 网络资产测绘方法、装置、设备及存储介质 | |
CN109889619B (zh) | 基于区块链的异常域名监测方法及装置 | |
CN114244555A (zh) | 一种安全策略的调整方法 | |
CN113992664A (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN115842716B (zh) | 故障服务器的确定方法、装置、设备以及存储介质 | |
CN112637293B (zh) | 数据修复系统、方法、装置、电子设备及存储介质 | |
CN116938605B (zh) | 网络攻击防护方法、装置、电子设备及可读存储介质 | |
CN110708208B (zh) | 监控数据的采集方法及装置、存储介质、终端 | |
US10225131B2 (en) | Management system cross domain connectivity discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |