本发明属于检测mac冲突技术领域,尤其是涉及一种基于arp的mac冲突检测方法。
背景技术:
现有的mac冲突检测方法大多过程较为繁琐,检测效率低,本专利申请是基于arp进行mac冲突检测的方法。
地址解析协议,即arp(addressresolutionprotocol),是根据ip地址获取物理地址的一个tcp/ip协议。主机发送信息时将包含目标ip地址的arp请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该ip地址和物理地址存入本机arp缓存中并保留一定时间,下次请求时直接查询arp缓存以节约资源。
技术实现要素:
有鉴于此,本发明旨在提出一种基于arp的mac冲突检测方法,以解决现有的mac冲突检测方法大多过程较为繁琐,检测效率低的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于arp的mac冲突检测方法,包括:
s1、创建eth_p_arp类型的原生套接字;
s2、接收并解析arp报文;
s3、比较arp报文与本设备mac地址的相应段,进而判断是否冲突。
进一步的,所述s2中的arp报文包括以太网首部和arp请求/应答部。
进一步的,所述arp请求/应答部包括发送端mac地址和发送端ip地址。
进一步的,所述步骤s3中,比较arp请求/应答部的发送端的mac地址和发送端ip地址与本设备的mac地址是否相同;如果mac地址不同,则丢弃该arp包;如果mac地址相同则进一步比较ip地址是否相同,如果ip地址相同则丢弃该arp包,如果不同则记录该arp包的mac地址和ip地址并上报此次mac冲突事件。
进一步的,如果mac地址冲突,记录对方的mac地址和ip地址,并上报mac地址冲突事件。
进一步的,所述arp请求/应答部包括28个字节,所述以太网手部包括14个字节。
相对于现有技术,本发明所述的基于arp的mac冲突检测方法具有以下优势:
本发明所述的基于arp的mac冲突检测方法可快速发现mac地址与本设备冲突的设备。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的基于arp的mac冲突检测方法流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,一种基于arp的mac冲突检测方法,包括:
s1、创建eth_p_arp类型的原生套接字;
s2、接收并解析arp报文;
s3、比较arp报文与本设备mac地址的相应段,进而判断是否冲突。
所述s2中的arp报文包括以太网首部和arp请求/应答部。所述arp请求/应答部包括28个字节,所述以太网手部包括14个字节。所述arp请求/应答部包括发送端mac地址和发送端ip地址。
所述步骤s3中,比较arp请求/应答部的发送端的mac地址和发送端ip地址与本设备的mac地址是否相同;如果mac地址不同,则丢弃该arp包;如果mac地址相同则进一步比较ip地址是否相同,如果ip地址相同则丢弃该arp包,如果不同则记录该arp包的mac地址和ip地址并上报此次mac冲突事件。
如果mac地址冲突,记录对方的mac地址和ip地址,并上报mac地址冲突事件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。