现在的位置: 首页 > 综合 > 正文

网络发现逻辑

2013年07月03日 ⁄ 综合 ⁄ 共 1339字 ⁄ 字号 评论关闭

网络发现逻辑

   根据UI输入的IP,从后台查找相应的ip, mask。

   如果后台有相关的Device数据,从后台获取。

   如果发现该数据不支持Discover,直接返回。

   根据后台返回的数据,获取相关Apid。

   从系统中获取全部的Apids,放入idlist中,并将Apid放在首位。

   

   从后抬数据获取相关的Device数据,用来填充此次Discover时的params(以增加准确性)。

   针对每一个Apid,执行发现逻辑:

           先ping,如果后台已经有对应的device数据,那么根据输入的ip,获取的该device的所有iplist。并取得device的name来填充参数和其它params。

                           如果后台没有相关数据,将输入ip,放入到iplist中。

                           记录下当前的ip,执行ping逻辑,并在执行中将ip param修改成被ping通的ip。

           进行snmp,获取系统中支持的所有snmpInfo并放入rolist, 如果后台已经有对应的device数据,那么将该device对应的snmpInfo放在rolist首位。

                           执行snmp逻辑,获取sysObjectid,并获得相关的DeviceName,vendor,model,deviceType, snmpInfo填入对应的 params。

                          如果执行成功,并且后台有对应的数据,记得修改对应后台的数据的DeviceType。

           进行Telnet,首先确定deviceType param。确定hostname param。

                           如果hostname已经被Discover过了,那么直接返回。

                           设置其它相关Telnet参数。

                           如果deviceType 为0,执行telnent,并且没有放入有效命令(如 show config, show arp table etc)。

                                    否则的话,根据不同条件,获取相应的命令如 show config, arp, mac, cdp等。

                            根据Telnet返回的结果,针对Config的结果,添加Device到系统,并再次设置hostname param。

                             修改 snmpdevice列表和MissDevice列表,记录新添加的Device。

                            处理其他类型数据,比如, RoutingTable,MacTable等等。

           进行Snmp取config

   跳出循环后,如果 snmp成功,可以考虑根据snmp获取相关ipphone等逻辑。

   修正MissDevice表。

   如果hostname param为空,将该ip添加到UnknowInfo中。

如果snmp或者Telnet成功,并且后台有相关数据。

             如果选择了通过RoutingProtocol,获取RoutingProtocol结果,调用查找邻居算法

             如果选择了通过CDP表,获取CDPtable结果,调用查找邻居算法。

抱歉!评论已关闭.