一種主機(jī)及其ip地址沖突預(yù)防方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種主機(jī)及其IP地址沖突預(yù)防方法。
【背景技術(shù)】
[0002]隨著高科技時代的到來,網(wǎng)絡(luò)成為了人們不可或缺的一部分,人們的工作學(xué)習(xí)和生活都離不開網(wǎng)絡(luò),通過網(wǎng)絡(luò)可以使得世界兩端的人進(jìn)行溝通交流、共享經(jīng)驗。在網(wǎng)絡(luò)世界中,每臺主機(jī)均應(yīng)具有唯一的IP(Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址,如果一臺主機(jī)其具有的IP地址不唯一(IP地址沖突),將會導(dǎo)致該主機(jī)無法正常訪問網(wǎng)絡(luò)。因此,保證每臺主機(jī)具有唯一的IP地址,避免IP地址沖突十分重要。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實施例提供一種主機(jī)及其IP地址沖突預(yù)防方法,以保證每臺主機(jī)具有唯一的IP地址,避免IP地址沖突。
[0004]為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
[0005]—種IP地址沖突預(yù)防方法,包括:
[0006]獲取自身IP地址和自身MAC地址,根據(jù)所述自身IP地址和自身MAC地址建立ARP請求包,其中,所述ARP請求包中接收方IP地址設(shè)置為所述自身IP地址;
[0007]將所述ARP請求包廣播至網(wǎng)絡(luò)上的所有主機(jī),判斷是否接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包;
[0008]若接收到,則根據(jù)所述目的ARP響應(yīng)包確定目的主機(jī),向網(wǎng)關(guān)發(fā)送IP地址修改請求,請求所述網(wǎng)關(guān)將所述目的主機(jī)的IP地址設(shè)置為O。
[0009]其中,所述根據(jù)所述自身IP地址和自身MAC地址建立ARP請求包包括:
[0010]建立物理幀頭,將所述物理幀頭中發(fā)送方MAC地址設(shè)置為所述自身MAC地址,將所述物理幀頭中接收方MAC地址設(shè)置為空;
[0011 ] 建立ARP幀,將所述ARP幀中發(fā)送方MAC地址設(shè)置為所述自身MAC地址,將所述ARP幀中接收方MAC地址設(shè)置為空,并將所述ARP幀中發(fā)送方IP地址和接收方IP地址均設(shè)置為所述自身IP地址。
[0012]其中,所述建立物理幀頭,將所述物理幀頭中發(fā)送方MAC地址設(shè)置為所述自身MAC地址,將所述物理幀頭中接收方MAC地址設(shè)置為空后還包括:
[0013]設(shè)置所述物理幀頭中硬件類型字段、協(xié)議類型字段、硬件地址長度、協(xié)議地址長度和操作字段。
[0014]其中,所述判斷是否接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包包括:
[0015]判斷是否接收到ARP響應(yīng)包;
[0016]若接收到,則根據(jù)所述ARP響應(yīng)包獲取發(fā)送所述ARP響應(yīng)包的主機(jī)的MAC地址,判斷所述MAC地址與所述自身MAC地址是否相同;
[0017]若不同,則判定接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的ARP響應(yīng)包。
[0018]其中,所述根據(jù)所述目的ARP響應(yīng)包確定目的主機(jī)包括:
[0019]對所述目的ARP包進(jìn)行解析,提取所述目的ARP響應(yīng)包中的發(fā)送方MAC地址,得到所述目的主機(jī)的MAC地址。
[0020]其中,所述向網(wǎng)關(guān)發(fā)送IP地址修改請求,請求所述網(wǎng)關(guān)將所述目的主機(jī)的IP地址設(shè)置為O后還包括:
[0021]將所述ARP請求包再次廣播至網(wǎng)絡(luò)上的所有主機(jī),判斷是否接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包;
[0022]若接收到,則重新向所述網(wǎng)關(guān)發(fā)送IP地址修改請求,直至不再接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包。
[0023]其中,所述向網(wǎng)關(guān)發(fā)送IP地址修改請求后還包括:
[0024]從零開始累計向所述網(wǎng)關(guān)發(fā)送IP地址修改請求的次數(shù);
[0025]若所述次數(shù)大于預(yù)設(shè)數(shù)值,則輸出錯誤信息,停止重新向所述網(wǎng)關(guān)發(fā)送IP地址修改請求,將所述次數(shù)歸零。
[0026]—種主機(jī),包括:請求包建立模塊、廣播判斷模塊和請求發(fā)送模塊;其中,
[0027]所述請求包建立模塊,用于獲取自身IP地址和自身MAC地址,根據(jù)所述自身IP地址和自身MAC地址建立ARP請求包,其中,所述ARP請求包中接收方IP地址設(shè)置為所述自身IP地址;
[0028]所述廣播判斷模塊,用于將所述ARP請求包廣播至網(wǎng)絡(luò)上的所有主機(jī),判斷是否接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包;
[0029]所述請求發(fā)送模塊,用于當(dāng)所述廣播判定模塊判定接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包時,根據(jù)目的ARP響應(yīng)包確定目的主機(jī),向網(wǎng)關(guān)發(fā)送IP地址修改請求,請求所述網(wǎng)關(guān)將所述目的主機(jī)的IP地址設(shè)置為O。
[0030]其中,所述請求包建立模塊包括:幀頭建立單元和幀建立單元;其中,
[0031]所述幀頭建立單元,用于建立物理幀頭,將所述物理幀頭中發(fā)送方MAC地址設(shè)置為所述自身MAC地址,將所述物理幀頭中接收方MAC地址設(shè)置為空;
[0032]所述幀建立單元,用于建立ARP幀,將所述ARP幀中發(fā)送方MAC地址設(shè)置為所述自身MAC地址,將所述ARP幀中接收方MAC地址設(shè)置為空,并將所述ARP幀中發(fā)送方IP地址和接收方IP地址均設(shè)置為所述自身IP地址。
[0033]其中,所述主機(jī),還包括:廣播請求模塊和計數(shù)模塊;其中,
[0034]所述廣播請求模塊,用于在所述請求發(fā)送模塊向網(wǎng)關(guān)發(fā)送IP地址修改請求,請求所述網(wǎng)關(guān)將所述目的主機(jī)的IP地址設(shè)置為O后,將所述ARP請求包再次廣播至網(wǎng)絡(luò)上的所有主機(jī),判斷是否接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包,若接收到,則重新向所述網(wǎng)關(guān)發(fā)送IP地址修改請求,直至不再接收到所述網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包;
[0035]所述計數(shù)模塊,用于從零開始累計向所述網(wǎng)關(guān)發(fā)送IP地址修改請求的次數(shù),若所述次數(shù)大于預(yù)設(shè)數(shù)值,則輸出錯誤信息,控制所述廣播請求模塊停止重新向所述網(wǎng)關(guān)發(fā)送IP地址修改請求。
[0036]基于上述技術(shù)方案,本發(fā)明實施例提供的主機(jī)及其IP地址沖突預(yù)防方法,獲取自身IP地址和自身MAC地址,并根據(jù)自身IP地址和自身MAC地址建立ARP請求包,其中,將該建立的ARP請求包中接收方IP地址設(shè)置為自身IP地址,然后將該建立的ARP請求包廣播至網(wǎng)絡(luò)上的所有主機(jī),判斷是否接收到該網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包,若接收到,則根據(jù)該目的ARP響應(yīng)包確定目的主機(jī),然后向網(wǎng)關(guān)發(fā)送IP地址修改請求,請求該網(wǎng)關(guān)將該目的主機(jī)的IP地址設(shè)置為O。在訪問網(wǎng)絡(luò)前,主機(jī)可通過建立將接收方IP地址設(shè)置為自身IP地址的ARP請求包,并向全網(wǎng)廣播該ARP請求包,判斷是否接收到網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包,來判斷網(wǎng)絡(luò)中是否存在與其自身IP地址相同的其他主機(jī),若判定接收到網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包,即可判定該網(wǎng)絡(luò)中存在與該主機(jī)自身IP地址相同的其他主機(jī),即判定存與該主機(jī)自身IP地址沖突的目的主機(jī),則通過向網(wǎng)關(guān)發(fā)送IP地址修改請求來將該目的主機(jī)的IP地址設(shè)置為O,來將該目的主機(jī)的IP地址修改為與本主機(jī)不同,從而保證了該主機(jī)自身IP地址的唯一性,有效預(yù)防了該主機(jī)因為IP地址沖突而無法正常訪問網(wǎng)絡(luò)情況的發(fā)生。
【附圖說明】
[0037]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0038]圖1為本發(fā)明實施例提供的IP地址沖突預(yù)防方法的流程圖;
[0039]圖2為本發(fā)明實施例提供的IP地址沖突預(yù)防方法中根據(jù)自身IP地址和自身MAC地址建立ARP請求包的方法流程圖;
[0040]圖3為本發(fā)明實施例提供的IP地址沖突預(yù)防方法中判斷是否接收到網(wǎng)絡(luò)上其他主機(jī)返回的目的ARP響應(yīng)包的方法流程圖;
[0041]圖4示出了本發(fā)明實施例提供的IP地址沖突預(yù)防方法中根據(jù)目的ARP響應(yīng)包確定目的主機(jī)的方法流程圖;
[0042]圖5示出了本發(fā)明實施例提供的IP地址沖突預(yù)防方法中重新向網(wǎng)關(guān)發(fā)送IP地址修改請求的方法流程圖;
[0043]圖6示出了本發(fā)明實施例提供的IP地址沖突預(yù)防方法中停止重新向網(wǎng)關(guān)發(fā)送IP地址修改請求的方法流程圖;
[0044]圖7為本發(fā)明實施例提供的主機(jī)的系統(tǒng)框圖;
[0045]圖8示出了本發(fā)明實施例提供的主機(jī)中請求包建立模塊的結(jié)構(gòu)框圖;
[0046]圖9示出了本發(fā)明實施例提供的主機(jī)的另一系統(tǒng)框圖。
【具體實施方式】
[0047