IP地址是否合法_第1頁(yè)
IP地址是否合法_第2頁(yè)
IP地址是否合法_第3頁(yè)
IP地址是否合法_第4頁(yè)
IP地址是否合法_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 TOC o 1-5 h z課程設(shè)計(jì)目的2課程設(shè)計(jì)要求2課程設(shè)計(jì)意義3課程設(shè)計(jì)使用設(shè)備3設(shè)計(jì)理論基礎(chǔ)及原理4地址相關(guān)概念4特殊的地址形式5網(wǎng)的劃分6設(shè)計(jì)過(guò)程75.開1發(fā)工具及技術(shù)選擇75.系2統(tǒng)分析及函數(shù)說(shuō)明75.程3序流程圖7 HYPERLINK l bookmark2主要代碼分析10調(diào)試運(yùn)行137.編1譯工具及相關(guān)說(shuō)明137.運(yùn)2行結(jié)果13課程設(shè)計(jì)總結(jié)16參考文獻(xiàn)17 HYPERLINK l bookmark46附源代碼18課程設(shè)計(jì)目的本設(shè)計(jì)要求編寫程序,判斷一個(gè)地址是否合法,并判斷該地址是否屬于一個(gè)給定的子網(wǎng)。從而考察觀察者是否對(duì)地址概念及子網(wǎng)劃分有非常清楚的認(rèn)識(shí)。課程設(shè)計(jì)要求在掌握地址

2、表示方法及子網(wǎng)劃分方法的基礎(chǔ)上,按如下要求完成程序。2.命1令行格式命令行格式:。其中為程序名;為子網(wǎng)號(hào);為一個(gè)數(shù)值,表示子網(wǎng)掩碼連續(xù)的個(gè)數(shù);是要測(cè)試的地址。例如:要測(cè)試的地址為5則命令行為,子1網(wǎng)6號(hào)為12002.13,3子網(wǎng)1掩6碼為0202.113.16.。(0因/為24其 # # 是連2續(xù)5地5240個(gè)1所,以用24表示。)判2斷其子網(wǎng)及判斷和的合法性。在判斷地址合法性時(shí)要自行編寫代碼,不要使用任何函數(shù)。判斷時(shí)要考慮全面,比如地址均不合法:2.判3斷其掩碼其判斷掩碼的合法性。判斷是否屬于子網(wǎng)在地址合法的前提下,判斷是否屬于子網(wǎng)計(jì)算出整個(gè)子網(wǎng)可以容納的最大主機(jī)數(shù)。輸出命令行中是否合法,掩

3、碼是否合法(可適當(dāng)給出不合法的原因)及是否屬于子網(wǎng)。課程設(shè)計(jì)意義通過(guò)該課程設(shè)計(jì)對(duì)地址的形成及合法性有深層次的理解還有對(duì)子網(wǎng)判斷有個(gè)清晰的認(rèn)識(shí);能夠通過(guò)對(duì)算法的描述能編程實(shí)現(xiàn);3.學(xué)2會(huì)撰寫課程設(shè)計(jì)總結(jié)報(bào)告;3.鍛3煉學(xué)生們的團(tuán)隊(duì)分工合作與協(xié)調(diào)能力;3.通4過(guò)查閱手冊(cè)和文獻(xiàn)資料,培養(yǎng)學(xué)生獨(dú)立分析和解決實(shí)際問(wèn)題的能力;3.培5養(yǎng)嚴(yán)肅認(rèn)真的工作作風(fēng)和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度;3.通6過(guò)此次課程設(shè)計(jì)提高學(xué)生的動(dòng)手能力,并能夠把理論知識(shí)和實(shí)踐相結(jié)合;3.此7次課程設(shè)計(jì)的目的在于能讓學(xué)生能夠?qū)⑺鶎W(xué)知識(shí)融會(huì)貫通、進(jìn)一步系統(tǒng)化進(jìn)一步提高軟件設(shè)計(jì)的能力,為以后的更高一級(jí)的軟件設(shè)計(jì)打下堅(jiān)實(shí)基礎(chǔ)。4課程設(shè)計(jì)使用設(shè)備硬件:機(jī)一

4、臺(tái)等。軟件:操作系統(tǒng)編程軟件等。 設(shè)計(jì)理論基礎(chǔ)及原理地址相關(guān)概念大型的互連網(wǎng)絡(luò)中應(yīng)該有一個(gè)全局的網(wǎng)絡(luò)系統(tǒng),它能過(guò)給互連到互連網(wǎng)的每一臺(tái)機(jī)或路由器分配一個(gè)全局唯一的地址。TCP/IP協(xié)議的網(wǎng)絡(luò)層使用的地址標(biāo)識(shí)符叫做IP地址,IPv.4中IP地址是一個(gè)32位的二進(jìn)制地址。網(wǎng)絡(luò)中的每一個(gè)主機(jī)或路由器至少有一個(gè)IP地址,在Internet中不允許有兩個(gè)設(shè)備使用相同的IP地址。如果一臺(tái)主機(jī)或路由器連接到兩個(gè)或多個(gè)物理網(wǎng)絡(luò),那么它可以擁有兩個(gè)或多個(gè)IP地址。IP地址采用分層結(jié)構(gòu),由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩部分組成(如下圖所示):網(wǎng)絡(luò)號(hào)主機(jī)號(hào)IP地址的長(zhǎng)度為32位,用點(diǎn)分十進(jìn)制表示,格式為x.x.x.x,每個(gè)x表示

5、8位,每個(gè)x的值為0255(例如202.133.29.119)。根據(jù)不同的取值范圍,IP地址可以氛圍五類,IP地址中的前五位用于標(biāo)識(shí)IP地址的類別,具體的分類規(guī)則如下:A類地址的第一位為0。B類地址的第兩位為10。C類地址的第三位為110。D類地址的第四位為1110。E類地址的第五位為11110。五類IP地址的結(jié)構(gòu)如下所示:0網(wǎng)絡(luò)號(hào)(7位)主機(jī)號(hào)(24位)10網(wǎng)絡(luò)號(hào)(14位)主機(jī)號(hào)(16位)110網(wǎng)絡(luò)號(hào)(21位)主機(jī)號(hào)(8位)1110組播地址(28)11110保留用于課程設(shè)計(jì)和將來(lái)使用A類IP地址結(jié)構(gòu)使用于有大量主機(jī)的大型網(wǎng)絡(luò)。由于主機(jī)號(hào)長(zhǎng)度為24位,因此每一個(gè)A類網(wǎng)絡(luò)的主機(jī)IP數(shù)理論上為2人

6、24=16777216,由于全0和全不能用,所以每一個(gè)A類網(wǎng)絡(luò)的主機(jī)IP數(shù)為16777214。B類IP地址適用于一些國(guó)際性大公司與政府機(jī)構(gòu)等中等大小的組織。由于網(wǎng)絡(luò)IP長(zhǎng)度為14位,因此允許有2人14=16384個(gè)不同的B類網(wǎng)絡(luò),實(shí)際允許連接16382個(gè)網(wǎng)絡(luò)。C類IP地址適用于一些小公司與普通研究機(jī)構(gòu)。特殊的地址形式1)直接廣播地址A類、B類與C類IP地址中主機(jī)號(hào)全1的地址稱為直接廣播地址,用來(lái)使路由將一個(gè)分組以廣播方式發(fā)送給特定網(wǎng)絡(luò)上的所有主機(jī)。直接廣播地址只能作為分組中的目的地址。物理網(wǎng)絡(luò)采用的是點(diǎn)-點(diǎn)傳輸方式,分組廣播需要通過(guò)軟件來(lái)實(shí)現(xiàn)。網(wǎng)絡(luò)號(hào)主機(jī)號(hào)全12)受限廣播地址網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的3

7、2位全為1的地址為受限廣播地址,用來(lái)將一個(gè)分組以廣播形式發(fā)送給本網(wǎng)餓所有主機(jī)。本網(wǎng)的所有主機(jī)將接受該分組,路由器則阻擋該分組通過(guò)。全13)“這個(gè)網(wǎng)絡(luò)上的這臺(tái)主機(jī)”地址4)“這個(gè)網(wǎng)絡(luò)上的特定主機(jī)”地址主機(jī)或路由器向本網(wǎng)絡(luò)上的某個(gè)特定的主機(jī)發(fā)送分組,網(wǎng)絡(luò)號(hào)部分為0,主機(jī)號(hào)為確定的值。這樣的分組被限制在本網(wǎng)絡(luò)內(nèi)部。網(wǎng)絡(luò)號(hào)全0主機(jī)號(hào)5)回送地址回送地址用于網(wǎng)絡(luò)軟件測(cè)試和本地進(jìn)程間通信。TCP/IP協(xié)議規(guī)定網(wǎng)絡(luò)號(hào)為127的分組不能出現(xiàn)在任何網(wǎng)絡(luò)上;主機(jī)和路由器不能為該地址廣播任何尋址信息。127任意值(通常取1)5.網(wǎng)3的劃分人們?cè)谠缙谠O(shè)計(jì)與建設(shè)ARPAnet時(shí),沒有料想到網(wǎng)絡(luò)的發(fā)展速度如此之快,應(yīng)用范

8、圍如此之廣。當(dāng)時(shí)個(gè)人計(jì)算機(jī)和局域網(wǎng)尚未出現(xiàn)。所以,研究者在設(shè)計(jì)Internet地址的編碼方案時(shí),主要是針對(duì)大型機(jī)互連的網(wǎng)絡(luò)結(jié)構(gòu)。設(shè)計(jì)IP地址的最初目的是希望每個(gè)IP地址都能唯一地、確定地標(biāo)示一個(gè)網(wǎng)絡(luò)或一臺(tái)主機(jī),但是這種方法同時(shí)也存在著兩個(gè)重要的問(wèn)題,即IP地址的有效利用率和路由器的工作效率。為了解決這個(gè)問(wèn)題,人們提出了子網(wǎng)(subnet)和超網(wǎng)(supernet)的概念。子網(wǎng)就是將一個(gè)大網(wǎng)絡(luò)劃分成幾個(gè)較小的網(wǎng)絡(luò),而每個(gè)小網(wǎng)絡(luò)都有其自己的地址。超網(wǎng)就是將一個(gè)組織所屬的幾個(gè)C類網(wǎng)絡(luò)合并成一個(gè)更大地址范圍的邏輯網(wǎng)絡(luò)。劃分子網(wǎng)實(shí)際上就是在IP地址系統(tǒng)中增加一個(gè)層次。三級(jí)IP地址的表示方法為netID-

9、subnetID-hostID。第一級(jí)網(wǎng)絡(luò)號(hào)定義了網(wǎng)點(diǎn)的位置;第二級(jí)網(wǎng)絡(luò)號(hào)定義了物理子網(wǎng);第三級(jí)主機(jī)號(hào)定義了主機(jī)和路由器到物理網(wǎng)絡(luò)的連接。三級(jí)層次的IP地址,一個(gè)IP分組的路由選擇過(guò)程分為三步:第一步將分組轉(zhuǎn)發(fā)給網(wǎng)點(diǎn),第二步轉(zhuǎn)發(fā)給物理網(wǎng)絡(luò),第三步轉(zhuǎn)發(fā)給確切的主機(jī)。當(dāng)三級(jí)層次的IP地址提交后,一個(gè)很現(xiàn)實(shí)的問(wèn)題是:如何從一個(gè)IP地址中提取出子網(wǎng)號(hào)。因此,提出了子網(wǎng)掩碼(subnetmask)的概念。子網(wǎng)掩碼的表示方法:網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)置1,主機(jī)號(hào)置0。如何判斷某一IP地址是否屬于某一子網(wǎng)呢?只需將二進(jìn)制IP地址與子網(wǎng)掩碼按位進(jìn)行“與”運(yùn)算。若“與”運(yùn)算所得值與給定子網(wǎng)地址一致,則說(shuō)明該IP地址屬于給

10、定的子網(wǎng)。設(shè)計(jì)過(guò)程5.1開發(fā)工具及技術(shù)選擇由于操作系統(tǒng)是我們最常用的操作系統(tǒng),還鑒于有強(qiáng)大的數(shù)據(jù)庫(kù)管理功能,借助它可以輕松地開發(fā)出功能強(qiáng),速度快,應(yīng)用廣并且占資源少的應(yīng)用程序,所有我們選擇、來(lái)實(shí)現(xiàn)這個(gè)系統(tǒng)。5.2系統(tǒng)分析及函數(shù)說(shuō)明為了避免使系統(tǒng)使用過(guò)多重復(fù)的代碼以及增加程序的可讀性我們可以定義一個(gè)類結(jié)構(gòu);輸入的字符串需要判斷是否是只是數(shù)字而不是其他的不合法字符我們就需要定義一個(gè)來(lái)判斷其輸入的串是否是字符;要判斷地址及子網(wǎng)號(hào)是否合法我們就需要設(shè)計(jì)一個(gè)函數(shù)來(lái)判斷地址及子網(wǎng)號(hào)是否正確的函數(shù)我們?cè)O(shè)函數(shù)分別為和;判斷是否屬于該子網(wǎng)號(hào)我們用函數(shù);最后我們需要輸出結(jié)果我們就使用來(lái)實(shí)現(xiàn)又好的輸出。其詳細(xì)的函數(shù)

11、及功能如下::判斷包括是否有非法字符、段值是否為四:判斷地址是否合法也包括非法字符、段值的判斷:判斷子網(wǎng)號(hào)是否合法也包括非法字符、段值的判斷判斷是否為子網(wǎng)成員,判斷子網(wǎng)號(hào)與掩碼是否匹配,以及子網(wǎng)號(hào)、主機(jī)號(hào)全全問(wèn)題定義輸出函數(shù)。程序流程圖a、主流程圖 #、驗(yàn)證地址合法性流程圖圖52驗(yàn)證ip地址合法性流程圖 # 、驗(yàn)證子網(wǎng)掩碼合法性流程圖 圖53驗(yàn)證子網(wǎng)掩碼合法性流程圖、驗(yàn)證是否屬于某個(gè)子網(wǎng)流程圖圖54驗(yàn)證ip是否屬于某個(gè)子網(wǎng)流程圖主要代碼分析)初始化和判斷是否超出范圍判斷中的值是否為字符判斷中的值是否為字符將中的字符數(shù)值化判斷值是否超出范圍用十進(jìn)制數(shù)表示的掩碼中的個(gè)數(shù)只能是一位數(shù)或者兩位數(shù) #

12、# # #給給賦值賦值 # # 判斷是否都是數(shù)字判/斷/每一位是否為數(shù)字字符)判斷地址是否合法以標(biāo)志將字符串按節(jié)分開循環(huán)進(jìn)行,直到結(jié)束將分開的每段賦值給段!數(shù)=不對(duì)4有非法字符或某段值非法)判斷問(wèn)題是否為子網(wǎng)成員,判斷子網(wǎng)號(hào)與掩碼是否匹配,以及子網(wǎng)號(hào)、主機(jī)號(hào)全全調(diào)用判別地址合法性的函數(shù)不/用/再檢錯(cuò)數(shù)組中放間的串?dāng)?shù)組中放間的數(shù)據(jù)中放中除外的串對(duì)應(yīng)的數(shù)不用再檢錯(cuò)中放中除外的串對(duì)應(yīng)的數(shù)獲/得掩碼說(shuō)明與不匹配說(shuō)明子網(wǎng)號(hào)全/說(shuō)明/子網(wǎng)號(hào)全0和掩碼與,結(jié)果和子網(wǎng)號(hào)比較說(shuō)明明明主機(jī)號(hào)全0說(shuō)明明明主機(jī)號(hào)全1屬于不屬于不屬于 調(diào)試運(yùn)行1編譯工具及相關(guān)說(shuō)明程序必須在命令行窗口中運(yùn)行,注意到函數(shù)中有兩個(gè)參數(shù)和a所

13、以在運(yùn)行程序之前將參數(shù)傳入主函數(shù)中。具體操作為:將源程序中文件夾中的可執(zhí)行文件復(fù)制到盤根目錄下,進(jìn)行命令行窗口中進(jìn)行盤根目錄,按格式程序名子網(wǎng)號(hào)子網(wǎng)掩碼地址進(jìn)行輸入。7.運(yùn)2行結(jié)果1)測(cè)試格式是否為三段格式如圖7-、17-2I):ipDebugip202.133.16.0/24蠶籍聲土應(yīng)該是:程序名子網(wǎng)號(hào)/掩碼ip地址分析:程序要求是“程序名子網(wǎng)號(hào)掩碼地址”格式而這里只有兩端造成參數(shù)不匹配,出錯(cuò)!D:ipDebugip24202.133.16.1長(zhǎng)網(wǎng)豈無(wú)效?惰效播碼為淚侑效ip地址為=202.133.16.1圖7-2分析:雖然格式是三段、子網(wǎng)號(hào)無(wú)效且掩碼是零蛋其地址還是合法的!)簡(jiǎn)單判斷子網(wǎng)號(hào)

14、及掩碼長(zhǎng)度是否超出范圍如圖D:ipDebugip202.133.166.224.3/24202.13.16.10子網(wǎng)號(hào)以及子網(wǎng)掩碼長(zhǎng)度過(guò)長(zhǎng)!圖分析:因?yàn)槌绦蚶镌O(shè)置的子網(wǎng)號(hào)和掩碼字符串長(zhǎng)度最多是18個(gè)字符而這里有20個(gè)字符大于,所以出錯(cuò)?。篨ipXDebugip202.133.16.0/24202.133.166.224.3Rp施址長(zhǎng)屢過(guò)長(zhǎng)I圖7-4分析:程序中的地址字符串最長(zhǎng)只有個(gè)而程序中有個(gè)字符大于個(gè),所以出錯(cuò)?。y(cè)試地址是否合法如圖D:ipDebugip202.133.16.0/24123.2.1有數(shù)子網(wǎng)號(hào)為=202.133.16.0播碼無(wú)效?1P地址無(wú)效?圖分析:地址不符合格式要求!D:

15、ipDebugip123.23$.2.1/24202.133.16.1子網(wǎng)號(hào)無(wú)效?掩釧無(wú)效,有效ip地址為=202.133.16.1圖分析:子網(wǎng)號(hào)出現(xiàn)了“$”字符,其為非法字符,所以出錯(cuò)!I):ipDebugip123.2454.2.1/24202.133.16.12網(wǎng)號(hào)無(wú)效?腌釧無(wú)效?侑奴ip地址為:202.133.16.1圖分析:子網(wǎng)號(hào)的段數(shù)不是四,所以出錯(cuò)!to:XipDebugip202.133.16.0/24123.23.45.2.1疽效子網(wǎng)號(hào)為=202.133.16.0腌碼無(wú)妬iP地址無(wú)數(shù)?分析:地址段數(shù)不是四,所以出錯(cuò)!)測(cè)試子網(wǎng)號(hào)與掩碼是否匹配如圖.0.0.1匹201K9-12

16、2馬-99弔1.1.1掩ip:l:1與s(為:9為號(hào)bu口另址網(wǎng)g網(wǎng)綣子沁子掩ip-Xi效效效誤D:有有 # # 圖分析:子網(wǎng)號(hào)轉(zhuǎn)換為二進(jìn)制:子網(wǎng)掩碼轉(zhuǎn)換成二進(jìn)制:從以上可以看出子網(wǎng)號(hào)與子網(wǎng)掩碼不匹配與輸出結(jié)果是一樣的說(shuō)明程序算法是正確.192.1.1的!g為:9為一bu口岳址沁子掩ip.1效數(shù)數(shù)1.128.0.0/91128.0.0192.1.11.128.0.0/9分析:子網(wǎng)號(hào)轉(zhuǎn)換為二進(jìn)制:子網(wǎng)掩碼轉(zhuǎn)換成二進(jìn)制:從以上可以看出子網(wǎng)號(hào)與子網(wǎng)掩碼匹配與輸出結(jié)果是一樣的說(shuō)明程序算法是正確的)測(cè)試子網(wǎng)號(hào)是否全零活全一如圖、bu口易址網(wǎng)g網(wǎng)黑子沁子掩ip,Xi效效效:1全:9為號(hào).0/9.15-1i

17、p:2:1全g為:0為號(hào)bu口另址網(wǎng)g網(wǎng)囂子沁子掩ip-Xi效效效誤D:g8課程設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.只有學(xué)習(xí)的理論知識(shí)和實(shí)際相結(jié)合這樣才能為社會(huì)創(chuàng)造更大的財(cái)富,為人類做出更大的貢獻(xiàn)!所以我非常注重這個(gè)環(huán)節(jié)的學(xué)習(xí),不僅如此而且反過(guò)來(lái)也更有利于理論知識(shí)的學(xué)習(xí),因?yàn)槔碚撋系囊恍┲R(shí)有點(diǎn)抽象不好理解不如實(shí)驗(yàn)的明了,通過(guò)實(shí)驗(yàn)的證實(shí)一下子就豁然開朗了!歷時(shí)一個(gè)星期的課程設(shè)計(jì)終于在今天完成了。在這次作業(yè)過(guò)程中,我們遇到了許多困難,但在我們的共同努力下,終于順利的完成了設(shè)計(jì)。這次的課程設(shè)計(jì)

18、讓我受益非淺。回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從從拿到題目到完成調(diào)試,從理論到實(shí)踐,在短短的一個(gè)星期的日子里,學(xué)到了很多的的東西:不僅鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過(guò)的知識(shí),在這次實(shí)驗(yàn)之中前幾天我們一直按照指導(dǎo)書上的做就是得不到想要得到的結(jié)果,檢查來(lái)檢查去就是發(fā)現(xiàn)不了錯(cuò)誤,最后老天不負(fù)有心人終于得到了結(jié)果,這就使我懂得對(duì)待科學(xué)不要憑想象、不能想當(dāng)然而是要通過(guò)細(xì)心的檢測(cè),特別要當(dāng)心自己一直想著沒錯(cuò)誤的地方,這就培養(yǎng)了學(xué)生的嚴(yán)肅認(rèn)真的工作作風(fēng)和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與

19、實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)還是有點(diǎn)困難,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,這就造成了微程序理解的困難,比如說(shuō)通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多大大小小的問(wèn)題,最后在楊老師的辛耐心的指導(dǎo)和同組伙伴的共同努力下,終于游逆而解。同時(shí),在楊老師的身上我學(xué)得到很多實(shí)用的知識(shí),在此我表示感謝!同時(shí),也對(duì)同組一起分工合作的同學(xué)表示感謝!參考文獻(xiàn)謝希仁;計(jì)算機(jī)網(wǎng)絡(luò);大連:大連理工大學(xué)出版社,2004.2孫學(xué)軍;計(jì)算機(jī)網(wǎng)絡(luò);北京:

20、電子工業(yè)出版社,2003.3王能;計(jì)算機(jī)網(wǎng)絡(luò)原理;北京:電子工業(yè)出版社,2002.6楊豐瑞楊豐任;實(shí)用教程最新計(jì)算機(jī)網(wǎng)絡(luò);北京:中國(guó)鐵道出版社 else 附源代碼#include#include#include#include#include#include/類結(jié)構(gòu)classipTestcharip15;定義ip數(shù)組,存放ip地址charsubnetPlusMask18;定義subnetPlusMask數(shù)組,存放子網(wǎng)號(hào)和子網(wǎng)掩碼中1的個(gè)數(shù)charsubnet18;定義subnet數(shù)組,存放子網(wǎng)號(hào)charTempIp15;定義TempIp數(shù)組,存放臨時(shí)的ip地址charTempSub18;定義T

21、empSub數(shù)組,存放臨時(shí)的子網(wǎng)號(hào)intmask;定義整型mask,存放子網(wǎng)掩碼中1的個(gè)數(shù)boolmasklsValid;/定義布爾值maskIsValid,存放判斷mask真值的變量public:ipTest(char*,char*);/定義ipTest函數(shù)ipTest();boolNoIllegalChar(char*);/非法字符的判斷boolipIsValid(char*);判斷IP地址是否合法boolsubnetIsValid(char*);/判斷子網(wǎng)號(hào)是否合法voidbelong();/判斷IP是否為子網(wǎng)成員print();/定義輸出函數(shù)print;/主函數(shù)voidmain(int

22、argc,char*argv)if(argc!=3)/判斷參數(shù)格式是否正確cout命令格式錯(cuò)誤!endl正確的命令格式應(yīng)該是:程序名子網(wǎng)號(hào)/掩碼ip地址18)/先判斷最簡(jiǎn)單的錯(cuò)誤,子網(wǎng)號(hào)及子網(wǎng)掩碼長(zhǎng)度和是否超出cout15)/ip地址長(zhǎng)度是否超出coutip地址長(zhǎng)度過(guò)長(zhǎng)!;return;ipTesttest(argv1,argv2);實(shí)例化ipTest類test.print();/完成相應(yīng)判別并輸出結(jié)果/構(gòu)造函數(shù)ipTest:ipTest(char*subnetPlusMask,char*ip)maskIsValid=true;chartemp2;/把/前的字符復(fù)制到subnet字符數(shù)組中in

23、tsmLen=strlen(subnetPlusMask);/定義smLen為subnetPlusMask的長(zhǎng)度f(wàn)or(inti=0;isubneti=subnetPlusMaski;/對(duì)subnet數(shù)組賦值,值為subnetPlusMask中的數(shù)值this-TempSubi=subnetPlusMaski;/對(duì)TempSub數(shù)組賦值,值為subnetPlusMask中的數(shù)值subneti=0;/給數(shù)組加上結(jié)束符TempSubi=0;/給數(shù)組加上結(jié)束符if(i=smLen-3)/初始化mask和maskIsValidif(i=smLen-2)temp0=subnetPlusMaski+1;if

24、(!isdigit(temp0)/判斷temp中的值是否為字符maskIsValid=false;elseif(i=smLen-3)temp0=subnetPlusMaski+1;temp1=subnetPlusMask1+2;if(!(isdigit(temp0)&isdigit(temp1)/判斷temp中的值是否為字符maskIsValid=false;mask=atoi(temp);/將temp中的字符數(shù)值化if(mask32)/判斷mask值是否超出范圍maskIsValid=false;else/用十進(jìn)制數(shù)表示的掩碼中1的個(gè)數(shù)只能是一位數(shù)或者兩位數(shù)maskIsValid=false

25、;strcpy(this-subnetPlusMask,subnetPlusMask);/給subnetPlusMask賦值strcpy(this-ip,ip);/給IP賦值strcpy(this-TempIp,ip);/調(diào)用判別函數(shù),并輸出結(jié)果ipTest:print()boolsubIsV=subnetIsValid(TempSub);boolipIsV=ipIsValid(TempIp);if(!subIsV)/subnet非法cout子網(wǎng)號(hào)無(wú)效!endl;elsecout有效子網(wǎng)號(hào)為:subnetendl;if(!maskIsValid)/mask非法cout掩碼無(wú)效!endl;els

26、ecout有效掩碼為:maskendl;if(!ipIsV)/ip非法coutip地址無(wú)效!endl;cout有效ip地址為:ipendl;/判斷ip是否belongsubnetif(subIsV&ipIsV&maskIsValid)belong();/子網(wǎng)數(shù),判斷輸入是否含有非數(shù)字字符boolipTest:NoIllegalChar(char*ch)unsignedinti,k=0;for(i=0;istrlen(ch);i+)if(isdigit(*(ch+i)=0)/判斷每一位是否為數(shù)字字符returnfalse;returntrue;/若不含有非法數(shù)字字符則返回true判別IP地址是否

27、合法boolipTest:ipIsValid(char*ip)charch=.;/分隔符char*token,*dot4;intiplen=0;token=strtok(ip,ch);/以.標(biāo)志將IP字符串按節(jié)分開while(token!=NULL)/循環(huán)進(jìn)行,直到結(jié)束dotiplen=token;/將分開的每段賦值給dotiplen+;token=strtok(NULL,ch);if(iplen!=4)/段數(shù)不對(duì)returnfalse;for(inti=0;i255)/有非法字符或某段值非法returnfalse;returntrue;/判斷子網(wǎng)號(hào)是否合法boolipTest:subnetIsValid(char*subnet)if(!ipIsValid(subnet)/調(diào)用判別IP地址合法性的函數(shù)returnfalse;returntrue;判斷IP是否為子網(wǎng)成員,判斷子網(wǎng)號(hào)與掩碼是否匹配,以及子網(wǎng)號(hào)、主機(jī)號(hào)全0全I(xiàn)問(wèn)題voidipTest:belong()intsubLen=strlen(subnet); #inti

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論