華南農業(yè)大學課程設計報告_第1頁
華南農業(yè)大學課程設計報告_第2頁
華南農業(yè)大學課程設計報告_第3頁
華南農業(yè)大學課程設計報告_第4頁
華南農業(yè)大學課程設計報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上華南農業(yè)大學課程設計報告所屬課程名稱:計算機網絡及其應用計劃學時:2周開設時間:2005學年第一學期 授課學生: 02計算機科學與技術2班 授課人數(shù): 人指導教師:周敏華 南 農 業(yè) 大 學 信 息 學 院計算機網絡課程設計成績單開設時間:2005年第一學期專業(yè)計算機科學與技術班 級02計2小組人數(shù):1成員馮紹欣課程設計目的IP地址的合法性及子網的判斷成員分配教 師 評 語評價指標:l 題目內容完成情況 優(yōu) 良 中 差 l 對原理的理解程度 優(yōu) 良 中 差 l 報告結構清晰 優(yōu) 良 中 差 l 總結和分析詳盡 優(yōu) 良 中 差 成績教師簽名:1)課程設計目的 了解IP地

2、址的定義,劃分和子網的概念。(2)課程設計要求 1輸入命令格式:IP_test subnet/mask ip_addr 2判斷subnet和ip_addr的合法性3判斷掩碼的合法性 4在IP地址合法的前提下,判斷ip_addr是否屬于子網subnet(3)相關知識 因特而的網際協(xié)議IP,劃分子網(4)程序函數(shù)分析 compart()字符串分隔轉十進制函數(shù):把存放到subnet20,mask20,ip20的標準十進制表示的地址分隔成4個不含點的字符串放到字符數(shù)s15,s25,s35,s45中,再用atoi()轉成十進制放到指針*x,*y,*z,*w當中。具體做法是用3個整形參數(shù)p1,p2,p3存

3、放掃描到subnet20,mask20,ip20的點并記錄其位置,然后把位置0,p1,p2,p3,末端位置之間的字符分別傳到s15,s25,s35,s45,再調用atoi()轉成十進制。 ipvalidity()判斷ip合法與否函數(shù):把已經轉成十進制的地址傳入(4個十進制數(shù)),最高位范圍是1223,其他位是0255,然后根據范圍作出判斷是否合法。 maskvalidity()判斷mask是否合法函數(shù):用數(shù)組a7存放8位二進制數(shù)從左到右連續(xù)位1時的十進制值,255除外,共7個。最高位x!=255時,判斷x是否在a中,并且后面三個字節(jié)是否都為0,則是合法,否則違法。次高位y!=255時,判斷y是否

4、在a中,并且后面兩個字節(jié)是否都為0,或者x=255,y,z,w是否都為0合法,是合法,否則都違法。下面如次類推。check()判斷ip是否屬于子網函數(shù):mask和ip相與,放到b中,存放subnet的a和b相等則ip屬于subnet (5)源程序連注析: #include "Stdio.h"#include "Conio.h"#include "string.h"compart(char string20,int *x,int *y,int *z,int *w) /*把subnet20,mask20,ip20*/ int i,j=0,

5、p1,p2,p3,slen; /*轉為十進制放到a,b,c中*/ char s15,s25,s35,s45; slen=strlen(string); for(i=0;i<=slen;i+) if(stringi='.') p1=i; break; for(i=p1+1;i<=slen;i+) if(stringi='.') p2=i; break; for(i=p2+1;i<=slen;i+) if(stringi='.') p3=i; break; for(i=0;i<p1;i+) s1j=stringi; j+; s

6、1j='0' j=0; for(i=p1+1;i<p2;i+) s2j=stringi; j+; s2j='0' j=0; for(i=p2+1;i<p3;i+) s3j=stringi; j+; s3j='0' j=0; for(i=p3+1;i<slen;i+) s4j=stringi; j+; s4j='0' *x=atoi(s1); /*字符串轉十進制*/ *y=atoi(s2); *z=atoi(s3); *w=atoi(s4);ipvalidity(int x,int y,int z,int w) /

7、*根據IP地址的范圍判斷IP是否合法*/ int sign=1; /*IP合法sign為1,否則為0*/ while(1) if(x<1|x>223) printf("The IP is irregularity!n"); sign=0; break; if(y<0|y>255|z<0|z>255|w<0|w>255) printf("The IP is irregularity!n"); sign=0; break; if(w<0|w>255) printf("The IP is i

8、rregularity!n"); sign=0; break; break; return(sign);maskvalidity(int x,int y,int z,int w) /*判斷mask是否合法*/ int i,flag; int a7=128,192,224,240,248,252,254; /*a7存放8位二進制數(shù)從左到右連續(xù)位1時的十進制值,255除外*/ while(1) if(x!=255) for(i=0;i<7;i+) /*x!=255時,判斷x是否在a中,并且后面三個字節(jié)都為0,則是合法*/ if(x=ai&&y=0&&

9、z=0&&w=0) /*否則違法*/ flag=0; break; else flag=1; if(flag=1) printf("The mask is irregularity!n"); break; if(y!=255) /*y!=255時,判斷y是否在a中,并且后面兩個字節(jié)都為0,則是合法*/ for(i=0;i<7;i+) if(y=ai&&z=0&&w=0|y=0&&z=0&&w=0) /*或者x=255,y,z,w都為0合法,否則都違法*/ flag=0; break; /*

10、下面如次類推*/ else flag=1; if(flag=1) printf("The mask is irregularity!n"); break; if(z!=255) for(i=0;i<7;i+) if(z=ai&&w=0|z=0&&w=0) flag=0; break; else flag=1; if(flag=1) printf("The mask is irregularity!n"); break; if(w!=255) for(i=0;i<7;i+) if(w=ai|w=0) flag=0

11、; break; else flag=1; if(flag=1) printf("The mask is irregularity!n"); break; check(int a1,int a2,int a3,int a4,int b1,int b2,int b3,int b4,int c1,int c2,int c3,int c4) b1=b1&c1;b2=b2&c2;b3=b3&c3;b4=b4&c4; /*mask和ip相與,放到b中,存放subnet的a和b相等*/ if(a1=b1&&a2=b2&&a

12、3=b3&&a4=b4) /*則ip屬于subnet*/ printf("n the ip in the subnet!"); else printf("n the ip out the subnet!");main(int argc,char *argv) /*指針數(shù)組作為main的參數(shù)*/int a1,a2,a3,a4; /*a,b,c分別存放subnet,mask,ip的4位十進制的數(shù)*/ int b1,b2,b3,b4; int c1,c2,c3,c4; int i,j=0,t,z,sign1,sign2; /*sign1,sig

13、n2分別是subne,ip是否合法的標志位*/ char s50,subnet20,mask20,ip20; strcpy(s,argv1); /*下面是把截取到的字符串分別放到subnet20,mask20,ip20*/ strcpy(ip,argv2); z=strlen(s); for(i=0;i<=z;i+) if(si='/') t=i; for(i=0;i<t;i+) subneti=si; for(i=t+1;i<=z;i+) if(si!=' ') maskj=si; j+; maskj='0' compart(subnet,&a1,&a2,&a3,&a4); /*截取subnet的各字節(jié),以十進制放到a1,a2,a3,a4中*/ compart(mask,&b1,&b2,&b3,&b4); compart(ip,&c1,&c2,&c3,&c4); sign1=ipvalidity(a1,a2,a3,a4); /*判斷subnet是否合法*/

溫馨提示

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

評論

0/150

提交評論