[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0055] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0056] 如图1所示,一种防止网络设备的IP地址冲突的系统,应用于路由器中,包括:
[0057] 广域网接口1,用以为路由器提供一第一地址;
[0058] 局域网接口3,连接至少一个客户端,并根据一关联到一局域网的第二地址,于局域网中工作;
[0059] 分配单元4,连接局域网接口3,用以根据第二地址为客户端分配IP地址;
[0060] 还包括:
[0061] 判断单元2,分别连接广域网接口1和局域网接口3,用以判断第一地址与第二地址是否存在冲突,并提供一标识以于存在所述冲突时表示冲突;
[0062] 处理单元5,连接判断单元2和分配单元4,当第一地址与第二地址冲突时,处理单元5用以释放第一地址,并以预定规则改变所述第二地址,控制分配单元4根据改变后的所述第二地址重新为与局域网接口3连接的客户端分配IP地址,以及根据所述标识生成冲突信息和路由器重启事件提示。
[0063] 在本实施例中,路由器支持DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的功能。通过判断单元2可判断WAN/LAN是否存在冲突,当存在冲突时,可通过处理单元5释放与WAN口第一地址,避免无法进入WEB页面对IP地址就行修改的问题,可通过分配单元4修改LAN口客户端的IP地址来进行解决。
[0064] 在优选的实施例中,还可包括:
[0065] 显示单元6,连接处理单元5,用以显示冲突信息和路由器重启提示事件。
[0066] 在本实施例中,当存在冲突时,可通过显示单元6显示冲突页面,并提升用户路由器重启中,以及LAN口别替换的新的IP地址,方便用户了解路由器当前的运行状态。
[0067] 在优选的实施例中,判断单元2可包括:
[0068] 第一判断模块21,用以判断第一地址与第二地址是否相同;
[0069] 第二判断模块22,连接第一判断模块21,用以判断第一地址与第二地址是否处于同一网段;
[0070] 第三判断模块23,连接第二判断模块22,用以判断在不同网段的第一地址和第二地址是否处于同一网络。
[0071] 在本实施例中,WAN/LAN口的冲突可包括三类分别为:第一地址与第二地址相同产生的冲突、第一地址与第二地址处于同一网段产生的冲突和第一地址与第二地址处于同一网络产生的冲突。
[0072] 在优选的实施例中,第二判断模块22判断的具体过程为:
[0073] 当第一地址与第二地址不相同时,获取与第一地址对应的子网掩码,将第一地址转换为整数型的值,并将获得的值赋值给第一变量,将子网掩码转换整数型的值,并将获得的值赋值给第二变量;
[0074] 获取与第二地址对应的子网掩码,将第二地址转换为整数型的值,并将获得的值赋值给第三变量,将子网掩码转换为整数型的值,并将获得的值赋值给第四变量;
[0075] 判断第一变量和第二变量进行与运算获得的值与第三变量和第四变量进行与运算获得的值是否相等。
[0076] 在本实施例中,路由器正常上电启动时,WAN口接入网线,客户端进入路由器的WEB页面,在WEB页面上配置WAN口获取IP地址的方式为自动获取(即DHCP)方式,并正常获取到IP地址。
[0077] 当路由器获取到WAN口的IP地址后,判断获取到的IP地址与LAN口的IP地址是否存在冲突。通过第二判断模块22将WAN口的第一地址(IP地址)转换成整数型的值赋值给第一变量WANIP,将WAN口的子网掩码转换成整数型的值赋值给第二变量WANMASK;将LAN口的IP地址转换成整数型的值赋值给第三变量LANIP,将LAN口的子网掩码转换成整数型的值赋值给第四变量LANMASK,判断WANIP和WANMASK进行与运算获得的值与LANIP和LANMASK的进行与运算获得的值是否相等,若相等,则表示WAN/LAN处于同一网段,存在冲突,并提供一标识以表示冲突。
[0078] 在优选的实施例中,第三判断模块23判断的具体过程为:
[0079] 将第二变量和第四变量进行与运算,令获取的值为第五变量;
[0080] 判断第一变量和第五变量进行与运算获得的值与第三变量和第五变量进行与运算获得的值是否相等。
[0081] 在本实施例中,当WANIP和WANMASK进行与运算获得的值与LANIP和LANMASK的进行与运算获得的值不相等时,采用第三判断模块23将WANMASK和LANMASK进行与运算并将所获取的值赋予第五变量ENMASK,判断WANIP和ENMASK进行与运算获得的值与LANIP和ENMASK进行与运算获得的值是否相等,若相等,则表示WAN/LAN处于同一网络,存在冲突,并提供一标识以表示冲突。
[0082] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述c类网的IP地址时,将所述第二地址修改为a类网的IP地址。
[0083] 其中,a类网IP地址为:10.0.0.0~10.255.255.255的地址,c类网IP地址为:192.168.0.0~192.168.255.255。
[0084] 在本实施例中,当检测到冲突后,可通过设置变量conflict_flag来表示目前WAN/LAN存在冲突,当WAN口获取的IP地址与LAN口客户端获取的IP地址相同,由于路由器默认直接走WAN口,从而导致客户端无法访问路由器的WEB页面,故检测到冲突后,通过处理单元5释放WAN口的IP地址。当客户端用户请求WEB页面时,通过conflict_flag这个变量来判断是否存在冲突,如果存在,则直接向用户显示冲突页面,并提示用户路由器重启以及重新匹配后的LAN口IP地址。其中LAN口IP地址的变化规则是,如果检测到LAN口IP地址192.168.2.1与WAN口冲突时,将LAN口IP地址改为10.10.10.1。
[0085] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述a类网的IP地址时,将所述第二地址修改为b类网的IP地址。
[0086] 其中,b类网IP地址为:172.16.0.0~172.31.255.255。
[0087] 在本实施例中,如果检测到LAN口IP地址10.10.10.1与WAN口冲突时,将LAN口IP地址改为172.16.10.1。
[0088] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述b类网的IP地址时,将所述第二地址修改为c类网的IP地址。
[0089] 在本实施例中,如果检测到LAN口IP地址172.16.10.1与WAN口冲突时,将LAN口IP地址改为192.168.2.1。
[0090] 在优选的实施例中,所述预定规则还包括当所述第一地址与所述第二地址冲突,且冲突的IP地址均不属于所述a类网、所述b类网和所述c类网时,将所述第二地址修改为c类网的IP地址。
[0091] 如图2所示,一种防止网络设备的IP地址冲突的方法,应用于防止网络设备的IP地址冲突的系统,包括下述步骤:
[0092] S1.判断第一地址与第二地址是否存在冲突,若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2;若否,则结束;
[0093] S2.当所述第一地址与所述第二地址冲突时,释放所述第一地址,并以预定规则改变所述第二地址,根据改变后的所述第二地址重新为与所述局域网接口连接的客户端分配IP地址,以及根据所述标识生成冲突信息和所述路由器重启事件提示;
[0094] S3.对冲突信息和路由器重启提示事件进行显示。
[0095] 在本实施例中,通过判断WAN/LAN是否存在冲突,当存在冲突时,可通过释放与WAN口第一地址,避免无法进入WEB页面对IP地址就行修改的问题,可通过修改LAN口客户端的IP地址来进行解决,同时可通过一显示单元显示冲突页面,并提升用户路由器重启中,以及LAN口别替换的新的IP地址,方便用户了解路由器当前的运行状态。
[0096] 如图3所示,在优选的实施例中,步骤S1包括:
[0097] S11.判断第一地址与第二地址是否相同,若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2;若否,执行步骤S12;
[0098] S12.判断第一地址与第二地址是否处于同一网段,若否,执行步骤S13;若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2;
[0099] S13.判断在不同网段的第一地址和第二地址是否处于同一网络,若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2,若否,则结束。
[0100] 在本实施例中,WAN/LAN口的冲突可包括三类分别为:第一地址与第二地址相同产生的冲突、第一地址与第二地址处于同一网段产生的冲突和第一地址与第二地址处于同一网络产生的冲突。
[0101] 在优选的实施例中,步骤S12的具体判断过程为:
[0102] 获取与第一地址对应的子网掩码,将第一地址转换为整数型的值,并将获得的值赋值给第一变量,将子网掩码转换整数型的值,并将获得的值赋值给第二变量;
[0103] 获取与第二地址对应的子网掩码,将第二地址转换为整数型的值,并将获得的值赋值给第三变量,将子网掩码转换为整数型的值,并将获得的值赋值给第四变量;
[0104] 判断第一变量和第二变量进行与运算获得的值与第三变量和第四变量进行与运算获得的值是否相等,若否,执行步骤S13;若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2。
[0105] 在本实施例中,路由器正常上电启动时,WAN口接入网线,客户端进入路由器的WEB页面,在WEB页面上配置WAN口获取IP地址的方式为自动获取(即DHCP)方式,并正常获取到IP地址。
[0106] 当路由器获取到WAN口的IP地址后,判断获取到的IP地址与LAN口的IP地址是否存在冲突。通过将WAN口的第一地址(IP地址)转换成整数型的值赋值给第一变量WANIP,将WAN口的子网掩码转换成整数型的值赋值给第二变量WANMASK;将LAN口的IP地址转换成整数型的值赋值给第三变量LANIP,将LAN口的子网掩码转换成整数型的值赋值给第四变量LANMASK,判断WANIP和WANMASK进行与运算获得的值与LANIP和LANMASK的进行与运算获得的值是否相等,若相等,则表示WAN/LAN处于同一网段,存在冲突,并提供一标识以表示冲突,执行步骤S2,若不相等,则执行步骤S13。
[0107] 在优选的实施例中,步骤S13的具体判断过程为:
[0108] 将第二变量和第四变量进行与运算,令获取的值为第五变量;
[0109] 判断第一变量和第五变量进行与运算获得的值与第三变量和第五变量进行与运算获得的值是否相等,若是,则提供一标识以于存在所述冲突时表示所述冲突,执行步骤S2,若否,则结束。
[0110] 在本实施例中,当WANIP和WANMASK进行与运算获得的值与LANIP和LANMASK的进行与运算获得的值不相等时,将WANMASK和LANMASK进行与运算并将所获取的值赋予第五变量ENMASK,判断WANIP和ENMASK进行与运算获得的值与LANIP和ENMASK进行与运算获得的值是否相等,若相等,则表示WAN/LAN处于同一网络,存在冲突,并提供一标识以表示冲突,执行步骤S2。
[0111] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述c类网的IP地址时,将所述第二地址修改为a类网的IP地址。
[0112] 其中,a类网IP地址为:10.0.0.0~10.255.255.255的地址,c类网IP地址为:192.168.0.0~192.168.255.255。
[0113] 在本实施例中,当检测到冲突后,可通过设置变量conflict_flag来表示目前WAN/LAN存在冲突,当WAN口获取的IP地址与LAN口客户端获取的IP地址相同,由于路由器默认直接走WAN口,从而导致客户端无法访问路由器的WEB页面,故检测到冲突后,通过释放WAN口的IP地址。当客户端用户请求WEB页面时,通过conflict_flag这个变量来判断是否存在冲突,如果存在,则直接向用户显示冲突页面,并提示用户路由器重启以及重新匹配后的LAN口IP地址。其中LAN口IP地址的变化规则是,如果检测到LAN口IP地址192.168.2.1与WAN口冲突时,将LAN口IP地址改为10.10.10.1。
[0114] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述a类网的IP地址时,将所述第二地址修改为b类网的IP地址。
[0115] 其中,b类网IP地址为:172.16.0.0~172.31.255.255。
[0116] 在本实施例中,如果检测到LAN口IP地址10.10.10.1与WAN口冲突时,将LAN口IP地址改为172.16.10.1。
[0117] 在优选的实施例中,所述预定规则包括,当所述第一地址与所述第二地址冲突,且冲突的IP地址为所述b类网的IP地址时,将所述第二地址修改为c类网的IP地址。
[0118] 在本实施例中,如果检测到LAN口IP地址172.16.10.1与WAN口冲突时,将LAN口IP地址改为192.168.2.1。
[0119] 在优选的实施例中,所述预定规则还包括当所述第一地址与所述第二地址冲突,且冲突的IP地址均不属于所述a类网、所述b类网和所述c类网时,将所述第二地址修改为c类网的IP地址。
[0120] 本发明在进行WAN/LAN冲突检测中,不仅能判断是否在同一网段,同时可判断是否在同一网络。当检测到冲突后,可将WAN口释放掉并通过设置变量来判断是否处于冲突状态。用户可通过访问路由器的WEB页面,直接弹出WAN/LAN冲突的页面,并提示用户路由器重启中以及重新分配的LAN口IP地址。
[0121] 以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。