計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告2_第1頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告2_第2頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告2_第3頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告2_第4頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告2_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告題 目: ip地址的合法性及子網(wǎng)判斷 學(xué)生姓名: 學(xué) 號: 0 專業(yè)班級: 芙 同組姓名: 指導(dǎo)教師: 設(shè)計(jì)時間: 2012年下學(xué)期第19周 指導(dǎo)老師意見:評定成績: 簽名: 日期: 年 月 日 目錄一、課程設(shè)計(jì)目的和意義111設(shè)計(jì)目的112設(shè)計(jì)的意義1二、課程設(shè)計(jì)的內(nèi)容和要求2三、課程設(shè)計(jì)的相關(guān)技術(shù)33.1 課程設(shè)計(jì)的運(yùn)行環(huán)境33.2 ip地址相關(guān)概念和知識的回顧。33.3 特殊的ip地址形式43.4 子網(wǎng)的劃分5四、課程設(shè)計(jì)過程641程序大致設(shè)計(jì)過程:642實(shí)驗(yàn)流程圖6五、部分程序運(yùn)行結(jié)果9六、課程設(shè)計(jì)小結(jié)11七、參考文獻(xiàn)12附錄一:源代碼12一、課程設(shè)計(jì)目的和意義

2、11設(shè)計(jì)目的通過計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì),讓我們學(xué)會處理幾種常用計(jì)算機(jī)網(wǎng)絡(luò)問題的基本處理方法,掌握計(jì)算機(jī)網(wǎng)絡(luò)的基本原理,使我們在面對不斷變化的技術(shù)時,具有跟蹤,學(xué)習(xí)的基礎(chǔ)與能力。掌握ip地址的分類,準(zhǔn)確理解子網(wǎng)、掩碼的概念,確切地明了ip地址的合法格式。并判斷該地址是否屬于一個給定的子網(wǎng)。具體而言,關(guān)于”ip地址的合法性及子網(wǎng)判斷”課程設(shè)計(jì)題目的目的是:用c/c+語言編寫程序,以判斷一個ip地址是否合法,并判斷該地址是否屬于一個給定的子網(wǎng).從而能夠考察我們對ip地址的概念,各類ip地址的區(qū)分以及子網(wǎng)劃分的理解和掌握程度. 12設(shè)計(jì)的意義1、有利于基礎(chǔ)知識的理解通過計(jì)算機(jī)網(wǎng)絡(luò)的學(xué)習(xí),學(xué)生掌握了一些信息

3、時代生存與發(fā)展必需的信息技術(shù)基礎(chǔ)知識和基本技能,具備了在日常生活與學(xué)習(xí)中應(yīng)用信息技術(shù)解決問題的基本態(tài)度與基本能力。讓學(xué)生接觸了程度設(shè)計(jì),就能真正理解,從而進(jìn)一步打破計(jì)算機(jī)的神秘感。2、有利于邏輯思維的鍛煉程序設(shè)計(jì)是公認(rèn)的、最能直接有效地訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)分析問題、解決問題能力的學(xué)科之一。即使一個簡單的程序,從任務(wù)分析、確定算法、界面布局、編寫代碼到調(diào)試運(yùn)行,整個過程學(xué)生都需要有條理地構(gòu)思,這中間有猜測設(shè)想、判斷推理的抽象思維訓(xùn)練,也有分析問題、解決問題、預(yù)測目標(biāo)等能力的培養(yǎng)。3、有利于與其他學(xué)科的整合在程序設(shè)計(jì)中,我們可以解決其它學(xué)科有關(guān)問題,也利用其它課程的有關(guān)知識來解決信息技術(shù)中比較

4、抽象很難理解的知識。在信息技術(shù)課中整合其它學(xué)科的知識,發(fā)揮信息技術(shù)的優(yōu)勢。 4、有利于治學(xué)態(tài)度的培養(yǎng)。程序設(shè)計(jì)中,語句的語法和常量變量的定義都有嚴(yán)格的要求,有時輸了一個中文標(biāo)點(diǎn)、打錯了一個字母,編譯就不通過,程序無法正常運(yùn)行。因此,學(xué)生經(jīng)常會犯這樣的錯誤,可能要通過幾次乃至十多次的反復(fù)修改、調(diào)試,才能成功,但這種現(xiàn)象會隨著學(xué)習(xí)的深入而慢慢改觀。有助于嚴(yán)謹(jǐn)治學(xué)、一絲不茍的科學(xué)精神的培養(yǎng),以及不怕失敗、百折不撓品格的鍛煉。二、課程設(shè)計(jì)的內(nèi)容和要求在掌握ip地址的表示方法以及子網(wǎng)劃分方法的基礎(chǔ)上,并以計(jì)算機(jī)網(wǎng)絡(luò)中關(guān)于ip地址的相關(guān)理論知識為基石,運(yùn)用c/c+語言按如下要求完成程序。(1) 命令行格式

5、:ip_test subnet/mask ip_addr其中,ip_test為程序名;subnet為子網(wǎng)號;mask是一個整型數(shù)值,代表子網(wǎng)掩碼連續(xù)1的個數(shù);ip_addr表示要測試的ip地址。比如說,要測試的ip地址為202.113.16.10,子網(wǎng)號碼是202.113.16.0,子網(wǎng)掩碼是255.255.255.0,則命令行為ip_test202.113.16.0/24 202.113.16.10。(因?yàn)?55.255.255.0是連續(xù)的24個1,所以用24表示)(2) 判斷subnet和ip_addr的合法性。在判斷ip地址合法性時要自行編寫代碼,不要使用任何inet函數(shù)。判斷時要考慮各

6、種情況,全面分析問題。例如以下ip地址均不合法:123.2.1123.23$.2.1123.2345.2.1123.23.45.1(3)判斷掩碼的合法性。譬如說mask的值為負(fù)數(shù)或者大與32,這時輸入的掩碼就不合法。(3) 在ip地址合法,掩碼合法以及子網(wǎng)號也合法的前提下,判斷ip_addr是否屬于subnet。(4) 輸出命令行中的ip是否合法,掩碼是否合法,子網(wǎng)號碼是否合法(可適當(dāng)給出不合法的原因)以及ip_addr是否屬于子網(wǎng)subnet。(5) 還可以判斷子網(wǎng)號,主機(jī)號全0,全1問題。三、課程設(shè)計(jì)的相關(guān)技術(shù)3.1 課程設(shè)計(jì)的運(yùn)行環(huán)境c+是一種使用非常廣泛的計(jì)算機(jī)編程語言。c+是一種靜態(tài)

7、數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計(jì)語言。它支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、制作圖標(biāo)等等泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格. 本程序在windows環(huán)境下利用c+語言編寫,microsoft visual studio 6.0進(jìn)行編譯。visual studio是微軟公司推出的開發(fā)環(huán)境,visual studio可以用來創(chuàng)建windows平臺下的windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和office插件。3.2 ip地址相關(guān)概念和知識的回顧。大型的互連網(wǎng)絡(luò)中應(yīng)該有一個全局的地址系統(tǒng),它能夠給連接到互聯(lián)網(wǎng)的每一臺主機(jī)或者路由器分配一個唯

8、一的全局地址。tcp/ip協(xié)議的網(wǎng)絡(luò)層使用的地址標(biāo)識符叫做ip地址,ipv4中ip地址是一個32位的二進(jìn)制地址。網(wǎng)絡(luò)中的每一臺主機(jī)或者路由器至少有一個ip地址,在internet中不允許有兩個設(shè)備具有相同的ip地址。如果一臺主機(jī)或者路由器連接到兩個或多個物理網(wǎng)絡(luò),那么它可以擁有兩個或多個ip地址。ip地址采用分層結(jié)構(gòu),由網(wǎng)絡(luò)號與主機(jī)號兩部分組成(如下圖所示):網(wǎng)絡(luò)號主機(jī)號ip地址長度為32位,用點(diǎn)分十進(jìn)制表示,格式為.,每個為8位,每個的值為0255(例如202.113.29.119)。根據(jù)不同的取值范圍,ip地址可以分為五類,ip地址中的前5位用于標(biāo)識ip地址的類別,具體的分類規(guī)則如下:a類

9、地址的第一位為0。b類地址的前兩位為10 .c類地址的前三位為110。d類地址的前四位為1110。e類地址的前五位為11110。五類ip地址的結(jié)構(gòu)如下所示;0網(wǎng)絡(luò)號(7位)主機(jī)號(24位)10網(wǎng)絡(luò)號(14位)主機(jī)號(16位)110網(wǎng)絡(luò)號(21位)主機(jī)號(8位)1110組播地址(28位)11110保留用于課程設(shè)計(jì)和將來使用a類ip地址結(jié)構(gòu)適合用于有大量主機(jī)的大型網(wǎng)絡(luò)。由于主機(jī)號長度為24位,因此每個a類網(wǎng)絡(luò)的主機(jī)ip數(shù)理論上為224=16777216。b類ip地址適合用于一些國際性大公司與政府機(jī)構(gòu)等中等大小的組織。由于網(wǎng)絡(luò)ip長度為14位,因此允許有214=16384個不同的b類網(wǎng)絡(luò),實(shí)際允許連

10、接16382個網(wǎng)絡(luò)。c類ip地址適合用于一些小公司與普通的研究機(jī)構(gòu)。 3.3 特殊的ip地址形式(1) 直接廣播地址a類,b類,c類ip地址中主機(jī)號全1的地址稱為直接廣播地址,用來使路由器將一個分組以廣播方式發(fā)送給特定網(wǎng)絡(luò)上的所有主機(jī)。直接廣播地址只能作為分組中的目的地址。物理網(wǎng)絡(luò)采用的是點(diǎn)點(diǎn)傳輸方式,分組廣播需要通過軟件來實(shí)現(xiàn)。網(wǎng)絡(luò)號主機(jī)號全1(2)受限廣播地址網(wǎng)絡(luò)號與主機(jī)號的32位全位1的地址為受限廣播地址,用來將一個分組以廣播方式發(fā)送給本網(wǎng)的所有主機(jī)。本網(wǎng)的所有主機(jī)將接受該分組,路由器則阻擋該分組通過。全1(3) “這個網(wǎng)絡(luò)上的這臺主機(jī)”地址全0(4)“這個網(wǎng)絡(luò)上的特定主機(jī)”地址主機(jī)或路

11、由器向本網(wǎng)絡(luò)上的某個特定的主機(jī)發(fā)送分組,網(wǎng)絡(luò)號部分為全0,主機(jī)號為確定的值。這樣的分組被相知在本網(wǎng)絡(luò)內(nèi)部。網(wǎng)絡(luò)號全0主機(jī)號(5)回送地址回送地址用于網(wǎng)絡(luò)軟件測試和本地進(jìn)程見通信。tcp/ip協(xié)議規(guī)定網(wǎng)絡(luò)號為127的分組不能出現(xiàn)在任何網(wǎng)絡(luò)上;主機(jī)和路由器不能為該地址廣播任何尋址信息。127任意值(通常取1) 3.4 子網(wǎng)的劃分人們在早期設(shè)計(jì)與建設(shè)arpanet是,沒有預(yù)料到網(wǎng)絡(luò)的發(fā)展速度如此之快,應(yīng)用范圍如此之廣。當(dāng)時個人計(jì)算機(jī)與局域網(wǎng)尚未出現(xiàn)。所以,研究者在設(shè)計(jì)internet地址的編址方案時,主要是針對大型互聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu)。設(shè)計(jì)ip地址的最初目的是希望每個ip得志都能唯一地、確定地識別一個網(wǎng)絡(luò)

12、與一臺主機(jī),但是這種方法同時也存在著兩個主要的問題,即ip地址的有效利用率和路由器的工作效率。為了解決這個問題,人們提出了子網(wǎng)(subnet)和超網(wǎng)(supernet)的概念。子網(wǎng)就是一個大的網(wǎng)絡(luò)劃分成幾個較小的網(wǎng)絡(luò),而每一個小網(wǎng)絡(luò)都是其自己的地址。超網(wǎng)就是將一個組織所屬的幾個c類網(wǎng)絡(luò)合并成為一個更大地址范圍的邏輯網(wǎng)絡(luò)。劃分子網(wǎng)實(shí)際上就是在ip地址系統(tǒng)中增加一個層次。三級ip地址的表示方法為netid-subnet id-host id。第一級網(wǎng)絡(luò)號定義了網(wǎng)點(diǎn)的位置;第二級子網(wǎng)號定義了物理子網(wǎng);第三級主機(jī)號定義了主機(jī)和路由器到物理網(wǎng)絡(luò)的連接。三級層次的ip地址,一個ip分組的路由器的過程分為三

13、步:第一步將分組轉(zhuǎn)發(fā)給網(wǎng)點(diǎn),第二步轉(zhuǎn)發(fā)給物理子網(wǎng),第三步轉(zhuǎn)發(fā)給確切的主機(jī)。當(dāng)三級層次的ip地址提出后,一個很顯示的問題是:如何從一個ip地址提取出子網(wǎng)號。因此,提出了子網(wǎng)掩碼(subnet mask)的概念。子網(wǎng)掩碼有時也叫做子網(wǎng)掩碼。子網(wǎng)掩碼表示方法:網(wǎng)絡(luò)號與子網(wǎng)號置1,主機(jī)號置0。如判斷某一ip地址是否屬于某一子網(wǎng)呢?只需將二進(jìn)制ip地址與子網(wǎng)掩碼按位進(jìn)行“與”運(yùn)算。若“與”運(yùn)算所得值與給定子網(wǎng)地址一致,則說明該ip地址屬于給定的子網(wǎng)。四、課程設(shè)計(jì)過程41程序大致設(shè)計(jì)過程:1.分別判斷子網(wǎng)號、掩碼和ip地址的基本格式是否合法。2.如果三者的基本格式都合法,才調(diào)用判定“ip地址是否為子網(wǎng)成員

14、”的函數(shù)。該函數(shù)同時判別子網(wǎng)號與掩碼是否匹配,子網(wǎng)號為全0或全1,主機(jī)號為全0、全1.42實(shí)驗(yàn)流程圖如下: 1.主流程圖ynyyynnn開始子網(wǎng)是否合法ip地址是否屬于子網(wǎng)結(jié)束掩碼是否合法ip地址是否合法圖31主流程圖2.驗(yàn)證ip地址合法性流程圖yn開始結(jié)束用正則表達(dá)式判斷是否合法輸入ip地址圖32驗(yàn)證ip地址合法性流程圖3驗(yàn)證子網(wǎng)掩碼合法性流程圖yn開始結(jié)束用正則表達(dá)式判斷是否合法輸入子網(wǎng)掩碼圖33驗(yàn)證子網(wǎng)掩碼合法性流程圖 4驗(yàn)證ip是否屬于某個子網(wǎng)流程圖:yn開始結(jié)束結(jié)果與子網(wǎng)比較拆分ip地址與子網(wǎng)掩碼拆分ip地址和子網(wǎng)掩碼進(jìn)行與運(yùn)算輸入ip地址,子網(wǎng)掩碼和子網(wǎng)地址圖34驗(yàn)證ip是否屬于某

15、個子網(wǎng)流程圖五、部分程序運(yùn)行結(jié)果程序主要運(yùn)行界面: 1)測試格式是否為三段格式如圖: 分析:程序要求是“程序名 子網(wǎng)號/掩碼 ip地址”格式而這里只有兩端造成參數(shù)不匹配,出錯! 分析:雖然格式是三段、子網(wǎng)號無效且掩碼是零,其ip地址還是合法的!2)簡單判斷子網(wǎng)號及掩碼長度是否超出范圍如圖: 分析:因?yàn)槌绦蚶镌O(shè)置的子網(wǎng)號和掩碼字符串長度最多是18個字符而這里有20個字符大于18,所以出錯! 分析:程序中的ip地址字符串最長只有15個而程序中有17個字符大于15個,所以出錯!3)測試ip地址是否合法如圖: 分析:ip地址不符合格式要求! 分析:ip地址段數(shù)不是四,所以出錯! 4)測試子網(wǎng)號與掩碼是

16、否匹配如圖: 分析:子網(wǎng)號轉(zhuǎn)換為二進(jìn)制:00000001 11000000 00000000 00000000 子網(wǎng)掩碼轉(zhuǎn)換成二進(jìn)制:11111111 10000000 00000000 00000000 從以上可以看出子網(wǎng)號與子網(wǎng)掩碼不匹配與輸出結(jié)果是一樣的說明程序算法是正確的! 分析:子網(wǎng)號轉(zhuǎn)換為二進(jìn)制:00000001 10000000 00000000 00000000 子網(wǎng)掩碼轉(zhuǎn)換成二進(jìn)制:11111111 10000000 00000000 00000000 從以上可以看出子網(wǎng)號與子網(wǎng)掩碼匹配與輸出結(jié)果是一樣的說明程序算法是正確的! 5)測試子網(wǎng)號是否全零或全一如圖:六、課程設(shè)計(jì)小

17、結(jié)這次課程設(shè)計(jì),感觸頗深!課程設(shè)計(jì)是學(xué)生考試前最后一個重要學(xué)習(xí)環(huán)節(jié),是學(xué)習(xí)深化與升華的重要過程。經(jīng)過這次課程設(shè)計(jì),我發(fā)現(xiàn)現(xiàn)在學(xué)習(xí)的知識遠(yuǎn)遠(yuǎn)不夠,經(jīng)過自學(xué)以及向同學(xué)們學(xué)習(xí)才得以完成這次課程設(shè)計(jì)。此次課程設(shè)計(jì)任務(wù)是寫一個判斷ip地址的合法性和判斷這個ip地址是否為某一個子網(wǎng)?;艘惶於鄷r間才完成了程序的編寫,總體上說收獲很大,程序雖然是已經(jīng)學(xué)過的,不過是應(yīng)用一下而已,但是還是遇到了一些問題。收獲最大的地方是關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)的知識,這次課程設(shè)計(jì),讓我明白了ip地址和子網(wǎng)掩碼的關(guān)系,同時也明白了子網(wǎng)的劃分。在這一周的時間里,我通過這次的課程設(shè)計(jì)加強(qiáng)了自己掌握和理解計(jì)算機(jī)網(wǎng)絡(luò)理論原理的能力,培養(yǎng)了自己的實(shí)

18、際動手能力與綜合設(shè)計(jì)能力,并提高了自己的技術(shù)素質(zhì)。課程設(shè)計(jì)一向是我比較喜歡的實(shí)踐項(xiàng)目,因?yàn)閺闹袝W(xué)到許多東西,既檢驗(yàn)了我們前段時間理論知識的學(xué)習(xí)效果,又鍛煉了我的動手實(shí)踐能力。課程設(shè)計(jì)為我們提供了一個既動手又動腦,獨(dú)立參加實(shí)踐的好機(jī)會,要求我們將理論知識和實(shí)際情況有機(jī)地結(jié)合起來,鍛煉我們的分析問題,解決實(shí)際問題的能力,提高我們適應(yīng)實(shí)際,實(shí)踐的能力;它也要求我們綜合運(yùn)用所學(xué)的計(jì)算機(jī)網(wǎng)絡(luò)知識來解決有一定難度的問題,從而提高了我們對知識的綜合運(yùn)用能力,加深對知識間的融會貫通和聯(lián)系的理解。實(shí)驗(yàn)報(bào)告有點(diǎn)難搞,好多東西都要一點(diǎn)一點(diǎn)的敲上去,很是辛苦。不過搞好了也是件值得開心的事。對我而言,知識上的收獲很重

19、要,精神上的豐收更加可喜。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次實(shí)習(xí)必將成為我人生旅途上一個非常美好的回憶!希望以后還會有這樣的機(jī)會鍛煉自己。也希望老師們能多為學(xué)生們提供類似的機(jī)會,只有這樣的鍛煉機(jī)會多了,才能不斷提高我們的動手實(shí)踐能力.七、參考文獻(xiàn) 張堯?qū)W;計(jì)算機(jī)網(wǎng)絡(luò)與internet教程; 北京:清華大學(xué)出版社 吳功宣;計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì); 北京: 機(jī)械工業(yè)出版社附錄一:源代碼#include #include #include #include #include #include #include #include #include #include #pragma comment(lib

20、,ws2_32.lib)/類結(jié)構(gòu)class iptestpublic:char ip15;char subnetplusmask18;char subnet18;char tempip15;l maskisvalid;int mask;char tempsub18; iptest(char *,char *);iptest();bool noillegalchar(char *); /非法字符的判斷bool ipisvalid(char *); /判斷ip地址是否合法bool subnetisvalid(char *); /判斷子網(wǎng)號是否合法void belong(); /判斷ip是否為子網(wǎng)成

21、員print(); /主函數(shù)void main(int argc,char * argv)if(argc!=3) /判斷參數(shù)格式化是否正確couterrorendlformat shoud be:ip_test subnet/mask ip18) /先判斷最簡單的錯誤,長度是否超出cout15)coutip is too long;return;iptest test(argv1,argv2); /實(shí)例話iptest類test.print(); /完成相應(yīng)判別并輸出結(jié)果/構(gòu)造函數(shù)iptest:iptest( char* subnetplusmask, char *ip)maskisvalid=

22、true;char temp2;/把/前的字符復(fù)制到subnet字符數(shù)組中int smlen=strlen(subnetplusmask);for( int i=0; isubneti=subnetplusmaski;this-tempsubi=subnetplusmaski;subneti=0;tempsubi=0;if(i=smlen-2) /初始化mask和maskisvslidif(i=smlen-2)temp0=subnetplusmaski+1;if( !isdigit(temp0) )maskisvalid = false;else if( i = smlen-3 ) temp0

23、=subnetplusmaski+1;temp1=subnetplusmaski+2;if( !(isdigit(temp0)&isdigit(temp1) )maskisvalid=false;mask = atoi(temp);if( mask 32)maskisvalid = false;elsemaskisvalid=false;strcpy( this-subnetplusmask, subnetplusmask);strcpy( this-ip, ip );strcpy( this-tempip, ip );/調(diào)用判別函數(shù),并輸出結(jié)果iptest:print()bool subis

24、v=subnetisvalid(tempsub);bool ipisv=ipisvalid(tempip);if(!subisv)coutsubnet is invalid ! endl;elsecoutvalid subnet: subnetendl;if(!maskisvalid)coutmask is invalid!endl;elsecoutvalid mask:maskendl;if(!ipisv)coutip is invalid!endl;elsecoutvalid ip:ipendl;/判斷ip是否belong subnetif(subisv&ipisv&maskisvalid

25、)belong();/子函數(shù),判斷輸入是否含有非數(shù)字字符bool iptest:noillegalchar(char *ch)unsigned int i,k=0;for(i=0;istrlen(ch);i+)if(isdigit(*(ch+i)=0)return false;return true;/判別ip地址是否合法bool iptest:ipisvalid(char * ip)char ch= .; char *token,*dot4;int iplen=0;token=strtok(ip,ch); /以.標(biāo)志將ip字符串按節(jié)分開while(token!=null) /循環(huán)進(jìn)行,知道結(jié)

26、束dotiplen=token; /將分開的每段賦值給dotiplen+;token= strtok(null,ch);if(iplen!=4)couttempsubendl;return false; /段數(shù)不對for(int i=0;i255) /有非法字符或某段值非法return false;return true;/判斷子網(wǎng)號是否合法bool iptest:subnetisvalid(char* subnet)if( ! ipisvalid(subnet) /調(diào)用判別ip地址合法性的函數(shù)return false;return true;/判斷ip是否為子網(wǎng)成員,判斷子網(wǎng)號與掩碼是否匹配

27、,以及子網(wǎng)號、主機(jī)號全0全1問題void iptest:belong()int sublen=strlen(subnet);int iplen=strlen(ip);unsigned int iipa,isuba,imask;unsigned char suba4,ipa4;char temp3;int i,j,t=0;for(i=0,j=0;isublen;i+) /不用再檢錯if(subneti != .)tempj+=subneti; /temp數(shù)組中放.間的串elsesuba3-t = atoi(temp); /suba數(shù)組中放.間的數(shù)據(jù)j=0;t+;temp0=temp1=temp2

28、=0;suba0 = atoi(temp);temp0=temp1=temp2=0;isuba = *( unsigned int *)suba; /isuba中放subnet中.除外的串對應(yīng)的數(shù)for(i= 0, j= 0, t= 0; iiplen; i+) /不用再檢錯if(ipi != .)tempj+ = ipi;elseipa3-t = atoi(temp);j=0;t+;temp0=temp1=temp2=0;ipa0 = atoi(temp);iipa = *( unsigned int* )ipa; /iipa中放ip中.除外的串對應(yīng)的數(shù)imask = 0xffffffff;

29、imask=(32-mask); /獲取掩碼if( ( isuba | imask ) != imask ) /說明sub與mask不匹配cout 子網(wǎng)號與掩碼不匹配,error!endl;return;if( ( isuba imask ) = 0 ) /說明子網(wǎng)號全1cout 子網(wǎng)號全1,error!endl;return;if( ( isuba & imask ) = 0 ) /說明子網(wǎng)號全0cout 子網(wǎng)號全0,error!endl;return;if( ( isuba) = (iipa & imask) ) /ip和掩碼與,結(jié)果和子網(wǎng)號比較if( ( iipa | imask) =

30、imask ) /說明主機(jī)號全0cout 主機(jī)號全0,error!endl;return;if( ( iipa | imask ) = 0xffffffff ) /說明主機(jī)號全1cout 主機(jī)號全1,error!endl;return;/ip屬于subnetcout ip belongs to subnetplusmaskendl;return;/ip不屬于subnetelsecout ip doesnt belong to subnetplusmaskendl; 蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄

31、羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂

32、袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄蕆蟻膃莃蕿袆聿莂蟻蠆羅莁莁襖袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羈羇蕆薀螄芆蒆螞罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀蠆羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蝕芅膆蒅裊膁膅薇蚈肇芄蝕襖羃芃荿蚆衿芃蒂袂芇節(jié)蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁羋蝕螁膀莇莀羇肆莇蒂螀羂莆薅羅羈蒞螇袈芇莄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論