03:根據(jù)所述第一 IP地址依次判斷各個所述第一直連設(shè)備的類型,并記錄所述第一直連設(shè)備與所述當前路由設(shè)備的連接關(guān)系,如果所述第一直連設(shè)備為路由設(shè)備,執(zhí)行步驟104,如果所述第一直連設(shè)備為交換設(shè)備,執(zhí)行步驟105 ;
[0042]步驟104:將該路由設(shè)備作為當前設(shè)備,并執(zhí)行步驟102 ;
[0043]步驟105:獲取與該交換設(shè)備直連的第二直連設(shè)備的第二 IP地址;
[0044]步驟106:將該交換設(shè)備作為所述當前路由設(shè)備,并將所述第二直連設(shè)備及第二IP地址分別作為所述第一直連設(shè)備及第一 IP地址,并執(zhí)行步驟103。
[0045]本發(fā)明實施例提供了一種網(wǎng)絡(luò)拓撲結(jié)構(gòu)的發(fā)現(xiàn)方法,獲取與當前計算機直連的當前路由設(shè)備,獲取與當前路由設(shè)備直連的第一直連設(shè)備的第一 IP地址,根據(jù)第一 IP地址判斷各個第一直連設(shè)備的類型,并記錄各個第一直連設(shè)備與當前路由設(shè)備的連接關(guān)系,獲得以當前路由設(shè)備為交點的網(wǎng)絡(luò)拓撲結(jié)構(gòu),根據(jù)判斷的結(jié)果,如果第一直連設(shè)備為路由設(shè)備,將該路由設(shè)備作為當前路由設(shè)備,返回執(zhí)行獲取與當前路由設(shè)備直連的第一直連設(shè)備的第一 IP地址,獲取與該路由設(shè)備直連的直連設(shè)備,如果第一直連設(shè)備為交換設(shè)備,獲取與該交換設(shè)備直連的各個第二直連設(shè)備的第二 IP地址,將第二直連設(shè)備及第二 IP地址分別作為第一直連設(shè)備及第一 IP地址,返回執(zhí)行根據(jù)第一 IP地址判斷各個第一直連設(shè)備的類型,獲取與該交換設(shè)備直連的直連設(shè)備,這樣,從一個路由設(shè)備開始,獲取與其直連的各個直連設(shè)備,并判斷各個直連設(shè)備的類型,如果直連設(shè)備為路由設(shè)備或交換設(shè)備,進一步判斷與該直連設(shè)備直連的其他設(shè)備的類型,重復(fù)這樣的判斷過程,發(fā)現(xiàn)網(wǎng)段內(nèi)所有的網(wǎng)絡(luò)設(shè)備,在判斷過程中記錄各個網(wǎng)絡(luò)設(shè)備的連接關(guān)系,從而獲得完整的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。
[0046]在本發(fā)明一個實施例中,當開始發(fā)現(xiàn)網(wǎng)絡(luò)拓撲結(jié)構(gòu)時,在當前計算機上獲取與該計算機直連的路由設(shè)備上的路由表,對該路由表中的記錄進行逐條分析,獲得與當前計算機直連的路由設(shè)備及非直連路由設(shè)備,從中選擇與當前計算機直連的路由設(shè)備作為當前路由設(shè)備,從而獲得與當前計算機直連的路由設(shè)備,由與當前計算機直連的路由設(shè)備擴展到整個網(wǎng)絡(luò),從而獲取完整的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。
[0047]在本發(fā)明一個實施例中,獲取到當前路由設(shè)備之后,獲取該當前路由設(shè)備所屬路由網(wǎng)段的地址解析協(xié)議ARP表,通過對該ARP表中的各條記錄進行逐條讀取,獲取與當前路由設(shè)備直連的各個第一直連設(shè)備的IP地址,通過第一直連設(shè)備的IP地址可以判斷出各個第一直連設(shè)備的類型,從而能夠發(fā)現(xiàn)網(wǎng)絡(luò)拓撲結(jié)構(gòu)中各個網(wǎng)絡(luò)設(shè)備的類型,充分了解網(wǎng)絡(luò)拓撲結(jié)構(gòu)的布置形式。
[0048]在本發(fā)明一個實施例中,在獲取到第一直連設(shè)備的IP地址后,通過簡單網(wǎng)絡(luò)管理協(xié)議SNMP獲取第一直連設(shè)備的MAC地址與設(shè)備類型的對應(yīng)關(guān)系,并從當前路由設(shè)備所屬路由網(wǎng)段的ARP表中獲取IP地址與MAC地址的對應(yīng)關(guān)系,從而獲得IP地址與設(shè)備類型的對應(yīng)關(guān)系,根據(jù)IP地址與設(shè)備類型的對應(yīng)關(guān)系,判斷各個IP地址對應(yīng)的第一直連設(shè)備的類型,從而判斷出第一直連設(shè)備為計算機、路由設(shè)備或交換設(shè)備,確定出網(wǎng)絡(luò)拓撲結(jié)構(gòu)中各個網(wǎng)絡(luò)設(shè)備的類型。
[0049]在本發(fā)明一個實施例中,當?shù)谝恢边B設(shè)備為交換設(shè)備時,獲取該交換設(shè)備LLDP表與所屬路由網(wǎng)段的ARP表,根據(jù)ARP表獲取到與該交換設(shè)備直連的各個計算機的第二 IP地址,通過對LLDP表中的各條記錄進行分析,獲取到與該交換設(shè)備直連的其他路由設(shè)備或交換設(shè)備的第二 IP地址,進一步根據(jù)第二 IP地址判斷出各個網(wǎng)絡(luò)設(shè)備的類型,從而實現(xiàn)對以交換設(shè)備為交點的網(wǎng)絡(luò)拓撲結(jié)構(gòu)的發(fā)現(xiàn)。
[0050]在本發(fā)明一個實施例中,記錄第一直連設(shè)備與當前路由設(shè)備的連接關(guān)系時,建立一個拓撲數(shù)據(jù)結(jié)構(gòu)表,在拓撲數(shù)據(jù)結(jié)構(gòu)表中創(chuàng)建第一直連設(shè)備與當前路由設(shè)備的連接關(guān)系,并記錄各個第一直連設(shè)備及當前路由設(shè)備的設(shè)備ID、設(shè)備名稱、設(shè)備類型、IP地址及子網(wǎng)掩碼中的任意一個或多個,從而有效的記錄網(wǎng)絡(luò)拓撲結(jié)構(gòu)中的連接方式,并提高所發(fā)現(xiàn)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)中包括的信息。
[0051]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
[0052]如圖2所示,本發(fā)明一個實施例提供了一種網(wǎng)絡(luò)拓撲結(jié)構(gòu)的發(fā)現(xiàn)方法,包括:
[0053]步驟201:獲取與當前計算機直連的當前路由設(shè)備。
[0054]在本發(fā)明一個實施例中,在開始發(fā)現(xiàn)網(wǎng)絡(luò)拓撲結(jié)構(gòu)時,在任意一臺計算機上,讀取路由表,通過對路由表中的記錄進行逐條分析,分析出與當前計算機直連的路由設(shè)備和與當前計算機非直連的路由設(shè)備,從而獲取與當前計算機直連的當前路由設(shè)備,其中路由設(shè)備可以為路由器或三層交換機。例如,準備發(fā)現(xiàn)一個網(wǎng)段內(nèi)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)時,在該網(wǎng)段中任意一臺計算機A上讀取路由表1,通過對路由表1中的記錄進行逐條分析,獲取到與計算機A直連的路由設(shè)備1和與計算機A非直連的路由設(shè)備2和路由設(shè)備3,從而獲得與計算機A直連的路由設(shè)備1。
[0055]步驟202:獲取與當前路由設(shè)備直連的各個第一直連設(shè)備的第一 IP地址。
[0056]在本發(fā)明一個實施例中,獲取當前路由設(shè)備所屬路由網(wǎng)段的ARP表,通過對該ARP表中的各條記錄進行讀取,獲取到與當前路由設(shè)備直連的各個第一直連設(shè)備,以及各個第一直連設(shè)備對應(yīng)的第一 IP地址。例如,當前路由設(shè)備為路由設(shè)備1,獲取路由設(shè)備1所屬路由網(wǎng)段的ARP表1,通過對ARP表1中的各條記錄進行讀取,獲取到與路由設(shè)備1直連的4個直連設(shè)備,4個直連設(shè)備分別為直連設(shè)備1至直連設(shè)備4,并通過ARP表1獲得4個直連設(shè)備對應(yīng)的第一 IP地址,其中直連設(shè)備1對應(yīng)第一 IP地址1,直連設(shè)備2對應(yīng)第一 IP地址2,直連設(shè)備3對應(yīng)第一 IP地址3,直連設(shè)備4對應(yīng)第一 IP地址4。
[0057]步驟203:根據(jù)第一 IP地址,依次判斷各個第一直連設(shè)備是否為計算機,如果是,執(zhí)行步驟204,否則執(zhí)行步驟205。
[0058]在本發(fā)明一個實施例中,在獲得各個第一直連設(shè)備后,通過SNMP獲取各個第一直連設(shè)備的MAC地址與設(shè)備類型的對應(yīng)關(guān)系,通過當前路由設(shè)備所屬路由網(wǎng)段的ARP表獲取IP地址與MAC地址的對應(yīng)關(guān)系,從而獲取到IP地址與設(shè)備類型的對照關(guān)系表,將第一 IP地址與該對照關(guān)系表中設(shè)備類型為計算機的IP地址進行比對,如果第一 IP地址與對照關(guān)系表中設(shè)備類型為計算機的其中一個IP地址相同,那么判斷該第一 IP地址對應(yīng)的第一直連設(shè)備為計算機,相應(yīng)的執(zhí)行步驟204,如果第一 IP地址與對照關(guān)系表中設(shè)備類型為計算機的所有IP地址都不相同,判斷該第一 IP地址對應(yīng)的第一直連設(shè)備不是計算機,相應(yīng)的執(zhí)行步驟205。例如,通過SNMP分別獲取直連設(shè)備1至直連設(shè)備4的MAC地址與設(shè)備類型的對應(yīng)關(guān)系,其中直連設(shè)備1的MAC地址為MAC地址1,MAC地址1對應(yīng)計算機,直連設(shè)備2的MAC地址為MAC地址2,MAC地址2對應(yīng)交換設(shè)備,直連設(shè)備3的MAC地址為MAC地址3,MAC地址3對應(yīng)路由設(shè)備,直連設(shè)備4的MAC地址為MAC地址4,MAC地址4對應(yīng)計算機,通過ARP表1獲取到IP地址1對應(yīng)MAC地址1,IP地址2對應(yīng)MAC地址2,IP地址3對應(yīng)MAC地址3,IP地址4對應(yīng)MAC地址4,從而獲得IP地址與設(shè)備類型的對照關(guān)系表,IP地址1對應(yīng)計算機,IP地址2對應(yīng)交換設(shè)備,IP地址3對應(yīng)路由設(shè)備,IP地址4對應(yīng)計算機,分別將直連設(shè)備1至直連設(shè)備4對應(yīng)的第一 IP地址1至第一 IP地址4與對照關(guān)系表中的IP地址1和IP地址4進行比對,其中第一 IP地址1與IP地址1相同,判斷第一 IP地址1對應(yīng)的直連設(shè)備1為計算機,相應(yīng)的執(zhí)行步驟204,第一 IP地址2和第一 IP地址3與IP地址1及IP地址4均不相同,說明第一 IP地址2對應(yīng)的直連設(shè)備2及第一 IP地址3對應(yīng)的直連設(shè)備3均不是計算機,相應(yīng)的執(zhí)行步驟205,第一 IP地址4與IP地址4相同,說明第一 IP地址4對應(yīng)的直連設(shè)備4為計算機,相應(yīng)的執(zhí)行步驟204。
[0059]步驟204:記錄該計算機與當前路由設(shè)備的連接關(guān)系,并結(jié)束當前流程。
[0060]在本發(fā)明一個實施例中,建立一個拓撲數(shù)據(jù)結(jié)構(gòu)表,在拓撲數(shù)據(jù)結(jié)構(gòu)表中記錄計算機及當前路由設(shè)備的連接關(guān)系,并記錄計算機及當前路由設(shè)備的設(shè)備ID、設(shè)備名稱、設(shè)備類型、IP地址及子網(wǎng)掩碼。例如,創(chuàng)建一個拓撲數(shù)據(jù)結(jié)構(gòu)表,在該拓撲數(shù)據(jù)結(jié)構(gòu)表中記錄直連設(shè)備1及直連設(shè)備4與路由設(shè)備1為直連關(guān)系,并分別記錄直連設(shè)備1、直連設(shè)備4及路由設(shè)備1的設(shè)備ID、設(shè)備名稱、設(shè)備類型、IP地址及子網(wǎng)掩碼。
[0061]步驟205:根據(jù)第一 IP地址,依次判斷各個第一直連設(shè)備是否為路由設(shè)備,如果是,執(zhí)行步驟206,否則執(zhí)行步驟207。
[0062]在本發(fā)明一個實施例中,將各個第一 IP地址與步驟203中形成的對照關(guān)系表中設(shè)備類型為路由設(shè)備的IP地址進行比對,如果第一 IP地址與該對照關(guān)系表中設(shè)備類型為路由設(shè)備的其中一個IP地址相同,那么判斷該第一 IP地址對應(yīng)的第一直連設(shè)備為路由設(shè)備,相應(yīng)的執(zhí)行步驟206,如果第一 IP地址與對照關(guān)系表中設(shè)備類型為路由設(shè)備的所有IP地址都不相同,判斷該第一 IP地址對應(yīng)的第一直連設(shè)備不是路由設(shè)備,相應(yīng)的執(zhí)行步驟207。例如,分別將直連設(shè)備1至直連設(shè)備4對應(yīng)的第一 IP地址1至第一 IP地址4與對照關(guān)系表中的IP地址3進行