亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

配置多網(wǎng)卡的方法及裝置與流程

文檔序號:11732035閱讀:978來源:國知局
配置多網(wǎng)卡的方法及裝置與流程

本發(fā)明涉及通信領域,具體而言,涉及一種配置多網(wǎng)卡的方法及裝置。



背景技術:

在現(xiàn)在計算機硬件成本低廉、大量使用的情況下,網(wǎng)卡已經(jīng)成了一種常見的硬件設備,一臺計算機配置兩個網(wǎng)卡(其中一個有線網(wǎng)卡,一個無線網(wǎng)卡)的情況已經(jīng)很常見,一臺計算機配置多達三個及以上的網(wǎng)卡的情況也頻繁出現(xiàn)。但普通用戶同時使用多個網(wǎng)卡時,如動態(tài)主機配置協(xié)議(dynamichostconfigurationprotocol,簡稱為dhcp)或手動配置網(wǎng)卡網(wǎng)絡地址協(xié)議(internetprotocol,簡稱為ip)及默認網(wǎng)關時,會遇到路由沖突的問題,例如,某個網(wǎng)卡單個接線的時候能訪問的網(wǎng)絡地址在多個網(wǎng)卡同時接線的時候卻訪問不了,這是因為多個網(wǎng)卡的默認網(wǎng)關導致操作系統(tǒng)的路由表產(chǎn)生混亂,一個網(wǎng)絡連接本來應該走某個網(wǎng)卡發(fā)包到對應的網(wǎng)關但是依據(jù)混亂的路由表走了另一個網(wǎng)卡發(fā)包,導致網(wǎng)絡連接不成功。在通用串行總線(universalserialbus,簡稱為usb)網(wǎng)卡設備重定向(映射)到遠程操作系統(tǒng)時,這個混亂的路由表還可能導致用戶與遠程操作系統(tǒng)的連接斷開。目前解決這個問題的方法只能由用戶在操作系統(tǒng)中手動添加路由配置路由表來解決,這一解決辦法對普通用戶來說技術難度偏高,且用起來特別不方便。

針對相關技術中,終端配置多網(wǎng)卡的路由表混亂的問題,目前還沒有有效解決方案。



技術實現(xiàn)要素:

本發(fā)明提供了一種配置多網(wǎng)卡的方法及裝置,以至少解決相關技術中終端配置多網(wǎng)卡的路由表混亂的問題。

根據(jù)本發(fā)明的一個方面,提供了一種配置多網(wǎng)卡的方法,包括:

獲取系統(tǒng)中網(wǎng)卡的配置信息;

匹配所述系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,并將所述緩存列表添加至所述系統(tǒng)路由表中;

將建立的網(wǎng)絡連接套接字綁定所述網(wǎng)卡,通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段;

依據(jù)所述測試的結果更新所述緩存列表和所述系統(tǒng)路由表。

進一步地,所述將建立的網(wǎng)絡連接套接字綁定所述網(wǎng)卡之前,包括:

刪除所述系統(tǒng)路由表中回環(huán)網(wǎng)卡,虛擬網(wǎng)卡以及匹配所述系統(tǒng)的網(wǎng)絡連接的路由以外的所有路由。

進一步地,所述通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段包括:

發(fā)送互聯(lián)網(wǎng)控制報文協(xié)議icmp包至指定公網(wǎng)網(wǎng)絡地址協(xié)議ip地址,并接收到所述icmp響應包,依據(jù)所述icmp響應包確定可訪問的公網(wǎng)的網(wǎng)卡,以所述網(wǎng)卡的默認網(wǎng)關為所述系統(tǒng)的默認網(wǎng)關;

其中,在所述可訪問公網(wǎng)的網(wǎng)卡為多個的情況下,確認所述網(wǎng)卡中優(yōu)先級高的網(wǎng)卡的默認網(wǎng)關為所述系統(tǒng)的默認網(wǎng)關,其中,有線網(wǎng)卡的所述優(yōu)先級高于無線網(wǎng)卡的所述優(yōu)先級,響應速度快的網(wǎng)卡的所述優(yōu)先級高于響應速度慢的網(wǎng)卡的優(yōu)先級。

進一步地,所述通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段包括:

獲取所述系統(tǒng)的internet選項配置,在所述internet選項配置有代理服務器的情況下,解析所述代理服務器ip地址;

所述網(wǎng)卡與所述代理服務器進行tcp握手確認,在所述網(wǎng)卡收到所述代理服務器的響應后,確認所述網(wǎng)卡為可訪問重要內網(wǎng)的網(wǎng)卡,依據(jù)所述網(wǎng)卡的配置信息添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由,并依據(jù)所述網(wǎng)卡配置dns地址額外添加到網(wǎng)絡目的地址為dns地址,掩碼為255.255.255.255的路由;

在可訪問重要內網(wǎng)的所述網(wǎng)卡為多個的情況下,確認所述網(wǎng)卡中優(yōu)先級高的網(wǎng)卡添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由,并依據(jù)所述網(wǎng)卡配置dns地址額外添加到網(wǎng)絡目的地址為dns地址,掩碼為255.255.255.255的路由;

其中,有線網(wǎng)卡的所述優(yōu)先級高于無線網(wǎng)卡的所述優(yōu)先級,響應速度快的網(wǎng)卡的所述優(yōu)先級高于響應速度慢的網(wǎng)卡的優(yōu)先級。

進一步地,所述方法還包括:

在所述系統(tǒng)的internet選項配置預設字符開頭地址不使用代理服務器的情況下,解析所述預設字符開頭地址的字符串,添加路由條目。

進一步地,所述方法還包括:

在可訪問重要內網(wǎng)的所述網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至代理服務器,并接收icmp響應包,可得到所述網(wǎng)卡經(jīng)網(wǎng)關至所述代理服務器的每一跳路由器ip地址;

依據(jù)所述網(wǎng)卡與所述代理服務器的所述優(yōu)先級添加所述每一跳路由器ip地址的路由。

進一步地,所述通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段包括:

依據(jù)所述緩存列表中的所述網(wǎng)卡的路由及其所述網(wǎng)卡的優(yōu)先級,合并同一個所述網(wǎng)卡的 路由,更新所述系統(tǒng)路由表。

進一步地,所述通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段包括:

解析所述網(wǎng)卡的ip地址與子網(wǎng)掩碼配置,添加一條網(wǎng)絡目的地址為ip地址&子網(wǎng)掩碼值,掩碼為子網(wǎng)掩碼,網(wǎng)絡接口為所述網(wǎng)卡,網(wǎng)關為所述網(wǎng)卡對應的ip地址的路由;

在多張所述網(wǎng)卡解析得到的ip地址&子網(wǎng)掩碼值相同的,添加優(yōu)先級高的網(wǎng)卡的路由,其中,網(wǎng)絡接口號序號值小的網(wǎng)卡的所述優(yōu)先級高于網(wǎng)絡接口號序號值大的網(wǎng)卡的所述優(yōu)先級。

進一步地,依據(jù)所述測試結果更新所述緩存列表和系統(tǒng)路由表之后,包括以下至少之一:

監(jiān)聽所述網(wǎng)卡ip地址配置修改事件,依據(jù)所述修改事件更新所述緩存列表和所述系統(tǒng)路由表;

監(jiān)聽所述網(wǎng)卡拔線事件,依據(jù)所述拔線事件更新所述緩存列表和所述系統(tǒng)路由表;

監(jiān)聽所述網(wǎng)卡接線事件,依據(jù)所述接線事件更新所述緩存列表和所述系統(tǒng)路由表。

進一步地,監(jiān)聽所述網(wǎng)卡ip地址配置修改事件,依據(jù)所述修改事件更新所述緩存列表和所述系統(tǒng)路由表包括:

在所述網(wǎng)卡的ip地址&子網(wǎng)掩碼值,與原ip地址&原子網(wǎng)掩碼值相同,并且子網(wǎng)掩碼與原子網(wǎng)掩碼相同,默認網(wǎng)關與原默認網(wǎng)關相同,只是更換了所述ip地址的情況下,所述系統(tǒng)路由表和所述緩存列表保持不變;

在ip地址&子網(wǎng)掩碼值,與原ip地址&原子網(wǎng)掩碼值不相同,或者子網(wǎng)掩碼與原子網(wǎng)掩碼不相同,或者默認網(wǎng)關與原默認網(wǎng)關不相同的情況下,刪除所述緩存列表中所述網(wǎng)卡相關條目,將建立的網(wǎng)絡連接套接字綁定所述網(wǎng)卡,通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段,更新所述緩存列表和所述系統(tǒng)路由表。

進一步地,監(jiān)聽所述網(wǎng)卡拔線事件,依據(jù)所述拔線事件更新所述緩存列表和所述系統(tǒng)路由表包括:

刪除所述系統(tǒng)路由表中被拔線網(wǎng)卡相關條目;

標記所述緩存列表中所述被拔線網(wǎng)卡相關條目狀態(tài);

按照所述緩存列表合并路由,并更新到所述系統(tǒng)路由表;

刪除所述緩存列表中所述被拔線網(wǎng)卡相關條目;

關閉相關網(wǎng)絡連接原始套接字。

進一步地,監(jiān)聽所述網(wǎng)卡接線事件,依據(jù)所述接線事件更新所述緩存列表和所述系統(tǒng)路由表包括:

將建立的網(wǎng)絡連接套接字綁定所述網(wǎng)卡,通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段,更新所述緩存列表和所述系統(tǒng)路由表。

進一步地,依據(jù)所述測試結果更新所述緩存列表和所述系統(tǒng)路由表之后,包括:

在監(jiān)聽到本地新建網(wǎng)絡連接的情況下,判斷所述新建網(wǎng)絡連接對端ip地址是否落入私有地址范圍內;

在判斷所述新建網(wǎng)絡連接對端ip地址落入所述私有地址范圍內的情況下,判斷新建網(wǎng)絡連接對端ip地址是否在所述系統(tǒng)路由表中除所述系統(tǒng)默認網(wǎng)關以外的路由中;

在判斷所述新建網(wǎng)絡連接對端ip地址不是在所述系統(tǒng)路由表中除所述系統(tǒng)默認網(wǎng)關以外的路由中的情況下,復制所述新建網(wǎng)絡數(shù)據(jù)包,發(fā)送所述網(wǎng)絡連接套接字到每個被監(jiān)聽網(wǎng)卡并接收回應;

能收到響應的網(wǎng)卡為可訪問對端地址的網(wǎng)卡,在每張所述可訪問對端地址的網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至對端地址,并接收所述icmp響應包,在所述緩存列表中保存不同優(yōu)先級的所述對端地址相關路由;

根據(jù)所述緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并所述路由并更新到所述系統(tǒng)路由表。

進一步地,依據(jù)所述測試結果更新所述緩存列表和所述系統(tǒng)路由表之后,包括:

在監(jiān)聽到所述網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接的情況下,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址范圍內;

在判斷所述新建網(wǎng)絡連接兩端ip地址落入所述私有地址范圍內的情況下,監(jiān)聽所述新建網(wǎng)絡連接是否收到回應,在監(jiān)聽到收到所述回應時,確定所述新建網(wǎng)絡連接所屬網(wǎng)卡;

在所述緩存列表中保存預設特定優(yōu)先級指定地址的路由;

根據(jù)所述緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并或者拆分路由并更新到所述系統(tǒng)路由表。

根據(jù)本發(fā)明的另一方面,提供了一種配置多網(wǎng)卡的裝置,包括:

獲取模塊,用于獲取系統(tǒng)中網(wǎng)卡的配置信息;

匹配模塊,用于匹配所述系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,并將所述緩存列表添加至所述系統(tǒng)路由表中;

綁定模塊,用于將建立的網(wǎng)絡連接套接字綁定到該網(wǎng)卡,通過所述套接字和所述配置信息測試所述網(wǎng)卡的可訪問網(wǎng)段;

更新模塊,用于依據(jù)所述測試的結果更新所述緩存列表,再進一步更新到所述系統(tǒng)路由表中。

進一步地,所述裝置還包括以下至少之一:

修改監(jiān)聽模塊,用于監(jiān)聽所述網(wǎng)卡ip地址配置修改事件,依據(jù)所述修改事件更新所述緩存列表和所述系統(tǒng)路由表;

拔線監(jiān)聽模塊,用于監(jiān)聽所述網(wǎng)卡拔線事件,依據(jù)所述拔線事件更新所述緩存列表和所述系統(tǒng)路由表;

接線監(jiān)聽模塊,用于監(jiān)聽所述網(wǎng)卡接線事件,依據(jù)所述接線事件更新所述緩存列表和所述系統(tǒng)路由表。

進一步地,所述裝置還包括:

本地新建網(wǎng)絡連接監(jiān)聽模塊,用于在監(jiān)聽到本地新建網(wǎng)絡連接的情況下,判斷所述新建網(wǎng)絡連接對端ip地址是否落入私有地址范圍內,在判斷所述新建網(wǎng)絡連接對端ip地址落入所述私有地址范圍內的情況下,判斷新建網(wǎng)絡連接對端ip地址是否在所述系統(tǒng)路由表中除所述系統(tǒng)默認網(wǎng)關以外的路由中,在判斷所述新建網(wǎng)絡連接對端ip地址不是在所述系統(tǒng)路由表中除所述系統(tǒng)默認網(wǎng)關以外的路由中的情況下,復制所述新建網(wǎng)絡數(shù)據(jù)包,發(fā)送所述網(wǎng)絡連接套接字到每個被監(jiān)聽網(wǎng)卡并接收回應,在每張可訪問對端地址的網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至對端地址,并接收所述icmp響應包,在所述緩存列表中保存不同優(yōu)先級的所述對端地址相關路由,根據(jù)所述緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并所述路由并更新到所述系統(tǒng)路由表。

進一步地,所述裝置還包括:

網(wǎng)絡新建網(wǎng)絡連接監(jiān)聽模塊,用于在監(jiān)聽到所述網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接的情況下,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址范圍內,在判斷所述新建網(wǎng)絡連接兩端ip地址落入所述私有地址范圍內的情況下,監(jiān)聽所述新建網(wǎng)絡連接是否收到回應,在監(jiān)聽到收到所述回應時,確定所述新建網(wǎng)絡連接所屬網(wǎng)卡,在所述緩存列表中保存預設特定優(yōu)先級指定地址的路由,根據(jù)所述緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并或者拆分路由并更新到所述系統(tǒng)路由表。

通過本發(fā)明,采用獲取系統(tǒng)中網(wǎng)卡的配置信息,匹配該系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,并將該緩存列表添加至該系統(tǒng)路由表中,將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段,依據(jù)該測試的結果更新該緩存列表和該系統(tǒng)路由表,解決了的路由表的混亂的問題,進而達到了終端配置多網(wǎng)卡自適應網(wǎng)絡的效果。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:

圖1是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的流程圖;

圖2是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖一;

圖3是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖二;

圖4是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖三;

圖5是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖四;

圖6是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的系統(tǒng)概要圖;

圖7是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的系統(tǒng)預處理流程圖;

圖8是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的ip地址配置修改事件處理流程圖;

圖9是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的網(wǎng)卡拔線事件處理流程圖;

圖10是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的網(wǎng)卡插線事件處理流程圖;

圖11是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的監(jiān)聽到本地新建網(wǎng)絡連接處理流程圖;

圖12是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的監(jiān)聽到網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接處理流程圖;

圖13是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的探測路由處理流程圖。

具體實施方式

下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。

需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。

在本實施例中提供了一種配置多網(wǎng)卡的方法,圖1是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的流程圖,如圖1所示,該流程包括如下步驟:

步驟s102,獲取系統(tǒng)中網(wǎng)卡的配置信息;

步驟s104,匹配該系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,并將該緩存列表添加至該系統(tǒng)路由表中;

步驟s106,將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段;

步驟s108,依據(jù)該測試的結果更新該系統(tǒng)路由表中的該緩存列表和該系統(tǒng)路由表。

通過上述步驟,獲取系統(tǒng)中網(wǎng)卡的配置信息,匹配該系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,該緩存列表包括:目標地址子網(wǎng)掩碼,本地地址,網(wǎng)卡,響應速度,優(yōu)先級,和狀態(tài), 并將該緩存列表添加至該系統(tǒng)路由表中,將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段,依據(jù)該測試的結果更新該緩存列表和該系統(tǒng)路由表,解決了終端配置多網(wǎng)卡的路由表混亂的問題,進而達到了終端配置多網(wǎng)卡自適應網(wǎng)絡的效果。

在本實施例中,將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡之前,包括:刪除該系統(tǒng)路由表中回環(huán)網(wǎng)卡和虛擬網(wǎng)卡以及匹配該系統(tǒng)的網(wǎng)絡連接的路由以外的所有路由,不影響原系統(tǒng)使用,有效兼容vpn等等虛擬網(wǎng)卡,能在程序啟動和系統(tǒng)環(huán)境改變時實現(xiàn)完美過渡。

在本實施例中,該通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段包括:發(fā)送互聯(lián)網(wǎng)控制報文協(xié)議icmp包至指定公網(wǎng)網(wǎng)絡地址協(xié)議ip地址,并接收到該icmp響應包,依據(jù)該icmp響應包確定可訪問的公網(wǎng)的網(wǎng)卡,以該網(wǎng)卡的默認網(wǎng)關為該系統(tǒng)的默認網(wǎng)關,其中,在該可訪問公網(wǎng)的網(wǎng)卡為多個的情況下,確認該網(wǎng)卡中優(yōu)先級高的網(wǎng)卡的默認網(wǎng)關為該系統(tǒng)的默認網(wǎng)關,其中,有線網(wǎng)卡的該優(yōu)先級高于無線網(wǎng)卡的該優(yōu)先級,響應速度快的網(wǎng)卡的該優(yōu)先級高于響應速度慢的網(wǎng)卡的優(yōu)先級。

在本實施例中,該通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段包括:獲取該系統(tǒng)的internet選項配置,在該internet選項配置有代理服務器的情況下,解析該代理服務器ip地址,該網(wǎng)卡與該代理服務器進行tcp握手確認,在該網(wǎng)卡收到該代理服務器的響應后,確認該網(wǎng)卡為可訪問重要內網(wǎng)的網(wǎng)卡,依據(jù)該網(wǎng)卡的配置信息添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由,并依據(jù)該網(wǎng)卡配置dns地址額外添加到網(wǎng)絡目的地址為dns地址,掩碼為255.255.255.255的路由,在可訪問重要內網(wǎng)的該網(wǎng)卡為多個的情況下,確認該網(wǎng)卡中優(yōu)先級高的網(wǎng)卡添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由,并依據(jù)該網(wǎng)卡配置dns地址額外添加到網(wǎng)絡目的地址為dns地址,掩碼為255.255.255.255的路由,其中,有線網(wǎng)卡的該優(yōu)先級高于無線網(wǎng)卡的該優(yōu)先級,響應速度快的網(wǎng)卡的該優(yōu)先級高于響應速度慢的網(wǎng)卡的優(yōu)先級。

在本實施例中,在該系統(tǒng)的internet選項配置預設字符開頭地址不使用代理服務器的情況下,解析該預設字符開頭地址的字符串,添加路由條目。

在本實施例中,在可訪問重要內網(wǎng)的該網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至代理服務器,并接收icmp響應包,可得到該網(wǎng)卡經(jīng)網(wǎng)關至該代理服務器的每一跳路由器ip地址,依據(jù)該網(wǎng)卡與該代理服務器的該優(yōu)先級添加該每一跳路由器ip地址的路由。

在本實施例中,該通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段包括:依據(jù)該緩存列表中的該網(wǎng)卡的路由及其該網(wǎng)卡的優(yōu)先級,合并同一個該網(wǎng)卡的路由,更新該系統(tǒng)路由表。

在本實施例中,該通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段包括:解析該網(wǎng)卡的ip地址與子網(wǎng)掩碼配置,添加一條網(wǎng)絡目的地址為ip地址&子網(wǎng)掩碼值,掩碼為子網(wǎng)掩碼,網(wǎng)絡接口為該網(wǎng)卡,網(wǎng)關為該網(wǎng)卡對應的ip地址的路由,在多張該網(wǎng)卡解析得到的ip地址&子網(wǎng)掩碼值相同的,添加優(yōu)先級高的網(wǎng)卡的路由,其中,網(wǎng)絡接口號序號值小的網(wǎng)卡的該 優(yōu)先級高于網(wǎng)絡接口號序號值大的網(wǎng)卡的該優(yōu)先級。

在本實施例中,依據(jù)該測試結果更新該緩存列表和該系統(tǒng)路由表之后,包括以下至少之一:監(jiān)聽該網(wǎng)卡ip地址配置修改事件,依據(jù)該修改事件更新該緩存列表和該系統(tǒng)路由表,監(jiān)聽該網(wǎng)卡拔線事件,依據(jù)該拔線事件更新該緩存列表和該系統(tǒng)路由表,監(jiān)聽該網(wǎng)卡接線事件,依據(jù)該接線事件更新該緩存列表和該系統(tǒng)路由表。

在本實施例中,監(jiān)聽該網(wǎng)卡ip地址配置修改事件,依據(jù)該修改事件更新該緩存列表和該系統(tǒng)路由表包括:在該網(wǎng)卡的ip地址&子網(wǎng)掩碼值,與原ip地址&原子網(wǎng)掩碼值相同,并且子網(wǎng)掩碼與原子網(wǎng)掩碼相同,默認網(wǎng)關與原默認網(wǎng)關相同,只是更換了該ip地址的情況下,該系統(tǒng)路由表和該緩存列表保持不變。

在ip地址&子網(wǎng)掩碼值,與原ip地址&原子網(wǎng)掩碼值不相同,或者子網(wǎng)掩碼與原子網(wǎng)掩碼不相同,或者默認網(wǎng)關與原默認網(wǎng)關不相同的情況下,刪除該緩存列表中該網(wǎng)卡相關條目,將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段,更新該緩存列表和該系統(tǒng)路由表。

在本實施例中,監(jiān)聽該網(wǎng)卡拔線事件,依據(jù)該拔線事件更新該緩存列表和該系統(tǒng)路由表包括:刪除該系統(tǒng)路由表中被拔線網(wǎng)卡相關條目,標記該緩存列表中該被拔線網(wǎng)卡相關條目狀態(tài),按照該緩存列表合并路由,并更新到該系統(tǒng)路由表,刪除該緩存列表中該被拔線網(wǎng)卡相關條目,關閉相關網(wǎng)絡連接原始套接字。

在本實施例中,監(jiān)聽該網(wǎng)卡接線事件,依據(jù)該接線事件更新該緩存列表和該系統(tǒng)路由表包括:將建立的網(wǎng)絡連接套接字綁定該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段,更新該系統(tǒng)路由表中的該緩存列表。

在本實施例中,依據(jù)該測試結果更新該緩存列表和該系統(tǒng)路由表之后,包括:在監(jiān)聽到本地新建網(wǎng)絡連接的情況下,判斷該新建網(wǎng)絡連接對端ip地址是否落入私有地址范圍內,在判斷該新建網(wǎng)絡連接對端ip地址落入該私有地址范圍內的情況下,判斷新建網(wǎng)絡連接對端ip地址是否在該系統(tǒng)路由表中除該系統(tǒng)默認網(wǎng)關以外的路由中,在判斷該新建網(wǎng)絡連接對端ip地址不是在該系統(tǒng)路由表中除該系統(tǒng)默認網(wǎng)關以外的路由中的情況下,復制該新建網(wǎng)絡數(shù)據(jù)包,發(fā)送該網(wǎng)絡連接套接字到每個被監(jiān)聽網(wǎng)卡并接收回應,能收到響應的網(wǎng)卡為可訪問對端地址的網(wǎng)卡,在每張該可訪問對端地址的網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至對端地址,并接收該icmp響應包,在該緩存列表中保存不同優(yōu)先級的該對端地址相關路由,根據(jù)該緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并該路由并更新到該系統(tǒng)路由表。

在本實施例中,依據(jù)該測試結果更新該緩存列表和該系統(tǒng)路由表之后,包括:在監(jiān)聽到該網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接的情況下,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址范圍內,在判斷該新建網(wǎng)絡連接兩端ip地址落入該私有地址范圍內的情況下,監(jiān)聽該新建網(wǎng)絡連接是否收到回應,在監(jiān)聽到收到該回應時,確定該新建網(wǎng)絡連接所屬網(wǎng)卡,在該緩存列表中保存預設特定優(yōu)先級指定地址的路由,根據(jù)該緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并或者拆分路由并更新到該系統(tǒng)路由表。

在本實施例中還提供了一種配置多網(wǎng)卡的裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。

圖2是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖一,如圖2所示,該裝置包括:

獲取模塊22,用于獲取系統(tǒng)中網(wǎng)卡的配置信息;

匹配模塊24,用于匹配該系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,并將該緩存列表添加至該系統(tǒng)路由表中;

綁定模塊26,用于將建立網(wǎng)絡連接的套接字綁定到該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段;

更新模塊28,用于依據(jù)該測試的結果更新該緩存列表,再進一步更新到該系統(tǒng)路由表中。

通過上述步驟,獲取模塊22獲取系統(tǒng)中網(wǎng)卡的配置信息,匹配模塊24匹配該系統(tǒng)的網(wǎng)絡連接和路由,建立緩存列表,該緩存列表包括:目標地址子網(wǎng)掩碼,本地地址,網(wǎng)卡,響應速度,優(yōu)先級,和狀態(tài),并將該緩存列表添加至該系統(tǒng)路由表中,綁定模塊26將建立網(wǎng)絡連接的套接字綁定到該網(wǎng)卡,通過該套接字和該配置信息測試該網(wǎng)卡的可訪問網(wǎng)段,更新模塊28依據(jù)該測試的結果更新該緩存列表和該系統(tǒng)路由表,解決了終端配置多網(wǎng)卡的路由表的混亂的問題,進而達到了終端配置多網(wǎng)卡自適應網(wǎng)絡的效果。

圖3是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖二,如圖3所示,除了圖2的模塊外,該裝置還包括:

修改監(jiān)聽模塊32,用于監(jiān)聽該網(wǎng)卡ip地址配置修改事件,依據(jù)該修改事件更新該緩存列表和該系統(tǒng)路由表;

拔線監(jiān)聽模塊34,用于監(jiān)聽該網(wǎng)卡拔線事件,依據(jù)該拔線事件更新該緩存列表和該系統(tǒng)路由表;

接線監(jiān)聽模塊36,用于監(jiān)聽該網(wǎng)卡接線事件,依據(jù)該接線事件更新該緩存列表和該系統(tǒng)路由表。

圖4是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖三,如圖4所示,除了圖2的模塊外,該裝置還包括:

本地新建網(wǎng)絡連接監(jiān)聽模塊42,用于在監(jiān)聽到本地新建網(wǎng)絡連接的情況下,判斷該新建網(wǎng)絡連接對端ip地址是否落入私有地址范圍內,在判斷該新建網(wǎng)絡連接對端ip地址落入該私有地址范圍內的情況下,判斷新建網(wǎng)絡連接對端ip地址是否在該系統(tǒng)路由表中除該系統(tǒng)默認網(wǎng)關以外的路由中,在判斷該新建網(wǎng)絡連接對端ip地址不是在該系統(tǒng)路由表中除該系統(tǒng)默認網(wǎng)關以外的路由中的情況下,復制該新建網(wǎng)絡數(shù)據(jù)包,發(fā)送該網(wǎng)絡連接套接字到每個被監(jiān)聽 網(wǎng)卡并接收回應,在每張可訪問對端地址的網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至對端地址,并接收該icmp響應包,在該緩存列表中保存不同優(yōu)先級的該對端地址相關路由,根據(jù)該緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并該路由并更新到該系統(tǒng)路由表。

圖5是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的處理裝置的結構框圖四,如圖5所示,除了圖2的模塊外,該裝置還包括:

網(wǎng)絡新建網(wǎng)絡連接監(jiān)聽模塊52,用于在監(jiān)聽到該網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接的情況下,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址范圍內,在判斷該新建網(wǎng)絡連接兩端ip地址落入該私有地址范圍內的情況下,監(jiān)聽該新建網(wǎng)絡連接是否收到回應,在監(jiān)聽到收到該回應時,確定該新建網(wǎng)絡連接所屬網(wǎng)卡,在該緩存列表中保存預設特定優(yōu)先級指定地址的路由,根據(jù)該緩存列表中網(wǎng)卡的路由及網(wǎng)卡的優(yōu)先級,合并或者拆分路由并更新到該系統(tǒng)路由表。

下面結合優(yōu)選實施例和實施方式對本發(fā)明進行詳細說明。

本發(fā)明的優(yōu)選實施例的提供了一種在多網(wǎng)卡操作系統(tǒng)中自適應網(wǎng)絡情況自動配置路由表的方法。圖6是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的系統(tǒng)概要圖,

該多網(wǎng)卡自適應網(wǎng)絡配置的方法,其步驟包括:

1.系統(tǒng)預處理,其步驟包括:

1)獲取當前系統(tǒng)所有網(wǎng)卡屬性值(網(wǎng)卡類型、網(wǎng)絡接口號或網(wǎng)絡接口名等等)及其ip地址與默認網(wǎng)關及dns配置。

2)獲取當前系統(tǒng)internet選項代理服務器配置。

3)獲取當前系統(tǒng)網(wǎng)絡連接列表。

4)在程序內部建立一個關于目標地址、子網(wǎng)掩碼、網(wǎng)關、本地地址、網(wǎng)卡、響應速度、優(yōu)先級和狀態(tài)的緩存列表,針對當前系統(tǒng)網(wǎng)絡連接與當前系統(tǒng)路由進行匹配保存進入程序內部緩存列表中同時添加至系統(tǒng)路由表中(即添加到網(wǎng)絡連接對端地址,掩碼為255.255.255.255的路由)。

5)刪除系統(tǒng)路由表中除回環(huán)網(wǎng)卡(loopback)和虛擬網(wǎng)卡(如vpn,其路由由虛擬網(wǎng)關相關程序進行維護)相關路由及匹配當前系統(tǒng)網(wǎng)絡連接的路由以外的所有路由,其目的為不影響系統(tǒng)當前(網(wǎng)絡連接)使用。

6)針對除回環(huán)網(wǎng)卡(loopback)和虛擬網(wǎng)卡(如vpn,其路由由虛擬網(wǎng)關相關程序進行維護)以外的每一個網(wǎng)卡,建立網(wǎng)絡連接原始(raw)套接字,綁定(bind)該網(wǎng)卡(ip地址),使當前套接字數(shù)據(jù)發(fā)送到該網(wǎng)卡,并進行以下測試以判斷該網(wǎng)卡可訪問網(wǎng)段并以此為依據(jù)重建系統(tǒng)路由表及保存進入程序內部緩存表中作為后面處理網(wǎng)卡拔插事件及配置修改事件的依據(jù):

a)發(fā)送icmp包至指定公網(wǎng)(internet)ip地址,并接收icmp響應包,其中能收到目標地址到達響應的網(wǎng)卡為可訪問公網(wǎng)(internet)的網(wǎng)卡,以其默認網(wǎng)關為系統(tǒng)默認網(wǎng)關(即添加到網(wǎng)絡 目的地址0.0.0.0,掩碼為0.0.0.0的路由)。如果可訪問公網(wǎng)(internet)的網(wǎng)卡有多個,則選擇其中的有線網(wǎng)卡,并選擇其中響應速度最快的那張有線網(wǎng)卡,以其默認網(wǎng)關為系統(tǒng)默認網(wǎng)關。如果可訪問公網(wǎng)(internet)的網(wǎng)卡全部為無線網(wǎng)卡,則也選擇其中響應速度最快的那張無線網(wǎng)卡,以其默認網(wǎng)關為系統(tǒng)默認網(wǎng)關。同時按照有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢在程序內部緩存表中保存不同優(yōu)先級的默認網(wǎng)關相關路由。

b)如果當前系統(tǒng)internet選項配置有代理服務器,則解析代理服務器ip地址,并發(fā)送tcpsyn包至代理服務器指定端口,接收代理服務器響應的syn+ack包,得到代理服務器響應后,向代理服務器回復ack包和fin包。其中能收到響應的網(wǎng)卡為可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡,添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由(如果代理服務器有多個,則路由條目也可以有多條)。如果可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡有多個,則選擇其中的有線網(wǎng)卡,并選擇其中響應速度最快的那張有線網(wǎng)卡,添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由。如果可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡全部為無線網(wǎng)卡,則也選擇其中響應速度最快的那張無線網(wǎng)卡,添加一條到網(wǎng)絡目的地址為代理服務器,掩碼為255.255.255.255的路由。

另外,再依據(jù)該網(wǎng)卡配置dns地址額外添加到網(wǎng)絡目的地址為dns地址,掩碼為255.255.255.255的路由。

如果當前系統(tǒng)internet選項還配置有例外情況,即對于下列字符開頭的地址不使用代理服務器,則解析該例外情況字符串,添加相應路由條目,如解析到10.*.*.*或10.*則添加到網(wǎng)絡目的地址為10.0.0.0,掩碼為255.0.0.0的路由,網(wǎng)絡接口為可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡的ip地址,網(wǎng)關為該網(wǎng)卡對應的網(wǎng)關ip地址;如解析到192.168.*.*或192.168.*則添加到網(wǎng)絡目的地址為192.168.0.0,掩碼為255.255.0.0的路由,網(wǎng)絡接口為可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡的ip地址,網(wǎng)關為該網(wǎng)卡對應的網(wǎng)關ip地址。

在每張可訪問重要內網(wǎng)(intranet或lan)的網(wǎng)卡上使用遞增的跳(metric)值發(fā)送icmp包至代理服務器,并接收icmp響應包,可得到從本地網(wǎng)卡經(jīng)網(wǎng)關至代理服務器的每一跳路由器ip地址。

同時,按照有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢在程序內部緩存表中保存不同優(yōu)先級的代理服務器相關路由,并采用與代理服務器路由相同優(yōu)先級在程序內部緩存表中保存dns相關路由及例外情況字符串解析所得相關路由和經(jīng)網(wǎng)關至代理服務器的每一跳路由器ip相關路由。

c)根據(jù)程序內部緩存表中已知路由及其優(yōu)先級,合并路由并更新到系統(tǒng)路由表,即添加合并后的路由并刪除原系統(tǒng)路由表中相關路由。路由合并只有來源于同一網(wǎng)卡的路由才能合并,合并前先判斷是否私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255),并判斷該路由中目標地址是否落入這三個私有地址段中的某一個,如果有多個目標地址落入某一個私有地址段,則解析這幾個目標地址的最大子網(wǎng)掩碼值(最大子網(wǎng)掩碼值:從最高位bit開始置1,每個目標地址ip地址&該子網(wǎng)掩碼得到的值相等的最 大數(shù)值)。合并路由的目的是裁剪冗余,提升系統(tǒng)路由表使用效率,以及根據(jù)已知條件推斷該網(wǎng)卡可訪問網(wǎng)段大概范圍,以利于用戶以后的網(wǎng)絡操作。

7)針對每一張網(wǎng)卡,解析其ip地址與子網(wǎng)掩碼配置,并據(jù)此添加一條網(wǎng)絡目的地址為ip地址&子網(wǎng)掩碼,掩碼為子網(wǎng)掩碼,網(wǎng)絡接口為該網(wǎng)卡,網(wǎng)關為該網(wǎng)卡對應的ip地址的本地路由(如果ip地址有多個,則路由條目也可以有多條)。當多張網(wǎng)卡解析得到的ip地址&子網(wǎng)掩碼相同的,根據(jù)網(wǎng)卡網(wǎng)絡接口號進行篩選,只保存網(wǎng)絡接口號序號值最小的那條。

同時,按照網(wǎng)絡接口號序號值小的高于網(wǎng)絡接口號序號值大的在程序內部緩存表中保存不同優(yōu)先級的本地相關路由。

8)開始對除回環(huán)網(wǎng)卡和虛擬網(wǎng)卡外的每張網(wǎng)卡網(wǎng)絡連接的監(jiān)聽,并監(jiān)聽網(wǎng)卡ip地址配置修改事件和網(wǎng)卡拔線接線事件。

圖7是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的系統(tǒng)預處理流程圖,如圖7所示,該流程包括如下步驟:

步驟s701,獲取所有網(wǎng)卡屬性;

步驟s702,獲取系統(tǒng)代理設置;

步驟s703,獲取所有網(wǎng)絡連接;

步驟s704,建立緩存列表;

步驟s705,添加到系統(tǒng)路由表;

步驟s706,刪除系統(tǒng)路由表中真實網(wǎng)卡建立網(wǎng)絡連接原始(raw)套接字;

步驟s707,為每個真實網(wǎng)卡建立網(wǎng)絡連接原始(raw)套接字;

步驟s708,為每個真實網(wǎng)卡建立的網(wǎng)絡連接原始(raw)套接字綁定該網(wǎng)卡;

步驟s709,探測路由;

步驟s710,開始監(jiān)聽。

2.網(wǎng)卡ip地址配置修改事件處理,其步驟包括:

1)當ip地址&子網(wǎng)掩碼值與原ip地址&原子網(wǎng)掩碼值相同并且子網(wǎng)掩碼與原子網(wǎng)掩碼相同、默認網(wǎng)關與原默認網(wǎng)關時,即只是更換了ip地址,系統(tǒng)路由表與程序內部緩存表保持不變。

2)在ip地址和子網(wǎng)掩碼值,與原ip地址和原子網(wǎng)掩碼值不相同,子網(wǎng)掩碼與原子網(wǎng)掩碼不相同,或者默認網(wǎng)關與原默認網(wǎng)關不相同的情況下,刪除程序內部緩存表中當前網(wǎng)卡相關條目。

3)建立網(wǎng)絡連接原始(raw)套接字,綁定(bind)當前網(wǎng)卡(ip地址),使當前套接字數(shù)據(jù)發(fā) 送到該網(wǎng)卡,并進行系統(tǒng)預處理中相同的測試更新到程序內部緩存表中。

4)按照程序內部緩存表合并路由,并更新到系統(tǒng)路由表。遇到有沖突的條目先比較優(yōu)先級,優(yōu)先級高時刪除系統(tǒng)路由表中原條目再添加新條目,優(yōu)先級低時則不處理。

圖8是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的ip地址配置修改事件處理流程圖,如圖8所示,該流程包括如下步驟:

步驟s801,判斷是否只更換了ip,所處子網(wǎng)未變?

步驟s802,在判斷為是時,系統(tǒng)路由表與程序內部緩存表保持不變;

步驟s803,在判斷為否時,刪除程序內部緩存表中當前網(wǎng)卡相關條目;

步驟s804,為當前網(wǎng)卡建立網(wǎng)絡連接原始(raw)套接字;

步驟s805,為當前網(wǎng)卡建立的網(wǎng)絡連接原始(raw)套接字綁定該網(wǎng)卡;

步驟s806,探測路由;

步驟s807,開始監(jiān)聽。

3.網(wǎng)卡拔線(或移除)事件處理,圖9是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的網(wǎng)卡拔線事件處理流程圖,如圖9所示,該流程包括如下步驟:

步驟s901,刪除系統(tǒng)路由表中當前網(wǎng)卡相關條目;

步驟s902,標記程序內部緩存表中被拔線網(wǎng)卡相關條目狀態(tài);

步驟s903,按照程序內部緩存表合并路由,并更新到系統(tǒng)路由表。將程序內部緩存表中與被拔線網(wǎng)卡相關條目有沖突的條目次一個優(yōu)先級的添加到系統(tǒng)路由表;

步驟s904,刪除程序內部緩存表中當前網(wǎng)卡相關條目;

步驟s905,關閉相關網(wǎng)絡連接原始(raw)套接字。

4.網(wǎng)卡插線事件處理,其步驟包括,

1)建立網(wǎng)絡連接原始(raw)套接字,綁定當前網(wǎng)卡(ip地址),使當前套接字數(shù)據(jù)發(fā)送到該網(wǎng)卡,并進行系統(tǒng)預處理中相同的測試更新到程序內部緩存表中。

2)按照程序內部緩存表合并路由,并更新到系統(tǒng)路由表。遇到有沖突的條目先比較優(yōu)先級,優(yōu)先級高時刪除系統(tǒng)路由表中原條目再添加新條目,優(yōu)先級低時則不處理。

圖10是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的網(wǎng)卡插線事件處理流程圖,如圖10所示,該流程包括如下步驟:

步驟s1001,為當前網(wǎng)卡建立網(wǎng)絡連接原始(raw)套接字;

步驟s1002,為當前網(wǎng)卡建立的網(wǎng)絡連接原始(raw)套接字綁定該網(wǎng)卡;

步驟s1003,探測路由;

步驟s1004,開始監(jiān)聽。

5.監(jiān)聽到(本地)新建網(wǎng)絡連接的處理,其步驟包括:

1)判斷新建網(wǎng)絡連接對端ip地址是否落入私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255)范圍內,如果不是,則不處理。

2)判斷新建網(wǎng)絡連接對端ip地址是否當前系統(tǒng)路由表中除系統(tǒng)默認網(wǎng)關以外的路由中,如果是,則不處理。

3)復制該網(wǎng)絡數(shù)據(jù)包,通過前面建立的每個網(wǎng)絡連接原始(raw)套接字,在每個被監(jiān)聽網(wǎng)卡上進行發(fā)送并接收回應,得到響應后,如果復制網(wǎng)絡數(shù)據(jù)包為tcpsyn包則回復ack包和fin包。其中能收到響應的網(wǎng)卡為可訪問對端地址的網(wǎng)卡,添加一條到網(wǎng)絡目的地址為對端地址,掩碼為255.255.255.255的路由。如果可訪問對端地址的網(wǎng)卡有多個,則選擇其中的有線網(wǎng)卡,并選擇其中響應速度最快的那張有線網(wǎng)卡,添加一條到網(wǎng)絡目的地址為對端地址,掩碼為255.255.255.255的路由。如果可訪問對端地址的網(wǎng)卡全部為無線網(wǎng)卡,則也選擇其中響應速度最快的那張無線網(wǎng)卡,添加一條到網(wǎng)絡目的地址為對端地址,掩碼為255.255.255.255的路由。

4)在每張可訪問對端地址的網(wǎng)卡上使用遞增的跳值發(fā)送icmp包至對端地址,并接收icmp響應包,可得到從本地網(wǎng)卡經(jīng)網(wǎng)關至對端地址的每一跳路由器ip地址。

5)同時,按照有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢在程序內部緩存表中保存不同優(yōu)先級的對端地址相關路由,并采用與對端地址路由相同優(yōu)先級在程序內部緩存表中保存經(jīng)網(wǎng)關至對端地址的每一跳路由器ip相關路由。

6)根據(jù)程序內部緩存表中已知路由及其優(yōu)先級,合并路由并更新到系統(tǒng)路由表,添加合并后的路由并刪除原系統(tǒng)路由表中相關路由。

圖11是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的監(jiān)聽到本地新建網(wǎng)絡連接處理流程圖,如圖11所示,該流程包括如下步驟:

步驟s1101,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址;

步驟s1102,在判斷新建網(wǎng)絡連接兩端ip地址是落入私有地址時,判斷新建網(wǎng)絡連接對端ip地址是否當前系統(tǒng)路由表中除系統(tǒng)默認網(wǎng)關以外的路由中;

步驟s1103,判斷新建網(wǎng)絡連接對端ip地址不是當前系統(tǒng)路由表中除系統(tǒng)默認網(wǎng)關以外的路由時,復制包;

步驟s1104,在每張網(wǎng)卡上發(fā)送;

步驟s1105,接收響應;

步驟s1106,按有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢添加路由;

步驟s1107,獲取本地至遠程ip所經(jīng)由的所有路由ip;

步驟s1108,保存到緩存列表;

步驟s1109,緩存列表中合并路由;

步驟s1110,系統(tǒng)路由中添加合并路由;

步驟s1111,系統(tǒng)路由中刪除合并路由覆蓋路由。

6.監(jiān)聽到(網(wǎng)卡所接網(wǎng)絡中)新建網(wǎng)絡連接的處理,其步驟包括:

1)判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255)范圍內,如果不是,則不處理。

2)監(jiān)聽該新建網(wǎng)絡連接是否收到回應(即回應ip包源地址與目的地址與新建網(wǎng)絡連接ip包相反),如果不是,則不處理。

3)判斷當前網(wǎng)絡連接所屬網(wǎng)卡。

4)在程序內部緩存表中保存特定優(yōu)先級指定地址相關路由(掩碼為255.255.255.255,網(wǎng)卡為網(wǎng)絡連接所屬網(wǎng)卡)。

5)根據(jù)程序內部緩存表中已知路由及其優(yōu)先級,合并(或拆分,即一個大的地址范圍拆分成3個小的地址范圍,兩個屬于原網(wǎng)卡,一個屬于新網(wǎng)卡)路由并更新到系統(tǒng)路由表,添加合并后的路由并刪除原系統(tǒng)路由表中相關路由。

圖12是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的監(jiān)聽到網(wǎng)卡所接網(wǎng)絡中新建網(wǎng)絡連接處理流程圖,如圖12所示,該流程包括如下步驟:

步驟s1201,判斷新建網(wǎng)絡連接兩端ip地址是否落入私有地址;

步驟s1202,在判斷新建網(wǎng)絡連接兩端ip地址是落入私有地址時,監(jiān)聽回應

步驟s1203,查看是否收到回應

步驟s1204,在收到回應時,獲取當前監(jiān)聽網(wǎng)卡;

步驟s1205,保存到緩存列表;

步驟s1206,緩存列表中合并路由;

步驟s1207,系統(tǒng)路由中添加合并路由

步驟s1208,系統(tǒng)路由中刪除合并路由覆蓋路由。

圖13是根據(jù)本發(fā)明實施例的一種配置多網(wǎng)卡的探測路由處理流程圖,如圖13所示,該流程包括如下步驟:

步驟s1301,發(fā)送icmp包至指定公網(wǎng)(internet)ip地址;

步驟s1302,接收icmp響應包;

步驟s1303,按有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢更新默認網(wǎng)關路由;

步驟s1304,使用tcpsyn包測試代理服務器ip地址;

步驟s1305,接收tcp響應syn+ack包;

步驟s1306,回應ack包和fin包;

步驟s1307,按有線網(wǎng)卡高于無線網(wǎng)卡,響應速度快高于響應速度慢更新訪問(重要內網(wǎng))代理服務器路由;

步驟s1308,更新訪問(重要內網(wǎng))dns服務器路由;

步驟s1309,更新訪問(重要內網(wǎng))代理例外路由;

步驟s1310,獲取本地至代理服務器ip所經(jīng)由的所有路由ip;

步驟s1311,保存到緩存列表;

步驟s1312,緩存列表中合并路由;

步驟s1313,系統(tǒng)路由中更新合并路由;

步驟s1314,根據(jù)網(wǎng)卡ip與掩碼添加本地子網(wǎng)路由。

本發(fā)明采用軟件的方法,使得本地操作系統(tǒng)具備多網(wǎng)卡自動適應網(wǎng)絡的功能。本方法使用不影響原系統(tǒng)使用的原則,部署方便,可以有效兼容vpn等等虛擬網(wǎng)卡,同時保留手動路由配置等系統(tǒng)原有高級功能,能在程序啟動和系統(tǒng)環(huán)境改變時實現(xiàn)完美過渡。采用本發(fā)明方法的操作系統(tǒng)能夠滿足當前用戶越來越復雜的網(wǎng)絡環(huán)境下多網(wǎng)卡銜接的需求,并可應用于usb網(wǎng)卡重定向遠程映射。

本發(fā)明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以被設置為存儲用于執(zhí)行上述實施例的方法步驟的程序代碼:

可選地,在本實施例中,上述存儲介質可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。

可選地,在本實施例中,處理器根據(jù)存儲介質中已存儲的程序代碼執(zhí)行…

可選地,在本實施例中,處理器根據(jù)存儲介質中已存儲的程序代碼執(zhí)行…

可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。

顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。

以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1