【正文】
流程圖命令行輸入?yún)?shù)格式開始子網(wǎng)長(zhǎng)度超出IP長(zhǎng)度超出subnet非法輸出“valid subnet”和子網(wǎng)輸出“subnet is invalid!”mask非法輸出“mask is invalid!”輸出“valid mask”和掩碼ip非法輸出“valid ip”和ip地址輸出“ip is invalid!”ip belong subnet輸出“ip belong to subnetPlusMask”輸出“ip not belong to subnetPlusMask”結(jié)束 Y Y N N N Y Y N N Y Y N N Y 詳細(xì)代碼include include include include include include //類結(jié)構(gòu)class ipTest{char ip[15]。 //定義ipTest函數(shù)~ipTest(){}。 printf(您輸入了 %d 個(gè)參數(shù)\n分別是:,argc)。}if(strlen(argv[2]) 15){ //ip地址長(zhǎng)度是否超出cout ip is too long。前的字符復(fù)制到subnet字符數(shù)組中int smLen = strlen(subnetPlusMask)。 //對(duì)TempSub數(shù)組賦值,值為subnetPlusMask中的數(shù)值}subnet[i] = 39。if(!(isdigit(temp[0])amp。 //給IP賦值strcpy(thisTempIp,ip)。elsecout valid ip: ip endl。i strlen(ch)。 //將分開的每段賦值給dotiplen++。return true。i subLen。.39。iSubA=*(unsigned int *)subA。else{ipA[3t]=atoi(temp)。.39。iMask)==0){ //說明子網(wǎng)號(hào)全0cout 子網(wǎng)號(hào)全0,error! endl。return。像里面關(guān)于IP知識(shí)的介紹大多便是在網(wǎng)上參考的。t belong to subnetPlusMask endl。}if((iSubA)==(iIPAamp。iMask =(32mask)。t++。.39。t++。.39。int ipLen = strlen(ip)。}if(iplen != 4) //段數(shù)不對(duì)return false。}}return true。amp。bool ipIsV = ipIsValid(TempIp)。isdigit(temp[1]))) //判斷temp中的值是否為字符maskIsValid = false。//給數(shù)組加上結(jié)束符TempSub[i] = 39。i smLen amp。}ipTest test(argv[1],argv[2])。iargc。 //非法字符的判斷bool ipIsValid(char *)。 //定義subnetPlusMask數(shù)組,存放子網(wǎng)號(hào)和子網(wǎng)掩碼中1的個(gè)數(shù)char subnet[18]。 //定義ipTest函數(shù)~ipTest(){}。 數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)//類結(jié)構(gòu)class ipTest{char ip[1