首页 > 代码库 > 判断一个字符串是否为合法IP

判断一个字符串是否为合法IP

输入任意一个字符串,判断是否为合法IP

 1 bool IsIPAddress(const char * str){ 2     //先判断形式是否合法, 3      4     //检查是否只包含点和数字 5     for(int i = 0; str[i] != \0; i++){ 6         if(!IsDigit(str[i]) && str[i] != .) 7             return false; 8     } 9     10     //检查是否形如X.X.X.X11     int count = 0;12     for(int i = 0; str[i+1] != \0; i++){13         if(IsDigit(str[i]) && str[i+1] == . )14             count++;15     }    16     if(count != 3)17         return false;18         19     //检查区间是否合法20     int temp = 021     int j = 0;22     for(int i = 0; str[i] != \0; i++){23         if(str[i] != .){24             temp = (temp * 10 * j + int(str[i] - 0));25             j++;26         }27         else{28             if(temp <= 255){29                 temp = 0;30                 j = 0;31             }32             else33                 return false;34         }35     }36     37     //最后一个也要判断38     if(temp > 255)39         return false;40         41     //通过所有测试,返回正确42     return true;43 }

 

判断一个字符串是否为合法IP