WEB开发网
开发学院软件开发C++ 检测是不是合法的 ip 字符串 阅读

检测是不是合法的 ip 字符串

 2012-05-18 07:50:41 来源:WEB开发网   
核心提示:其中的 TakeOutStringByChar 函数 查看我共享的代码/* 是不是一个 ip 的字符串形式 例如 127.000.000.001 1.1.1.1 BY: SinCOder */bool is_ip_string(const char *str){ const char *pstr = s
其中的 TakeOutStringByChar 函数 查看我共享的代码
/*
  是不是一个 ip 的字符串形式  例如 127.000.000.001  1.1.1.1
   BY: SinCOder 
*/
bool is_ip_string(const char *str)
{
    const char *pstr = str;
    uint len = 0;
    uint dot_count = 0; // . 计数
    while(*str)
    {
        if(!IS_CHAR_NUM(*str))
        {
            if(*str == '.')
            {
                ++dot_count;
                if(dot_count > 3)
                    return false;
            }
            else
               return false;
        }
        ++str;
        ++len;
        if(len > 16)
           return false;
    }
    if(dot_count != 3  || len < 7)
        return  false;
// 下一步就是过滤掉 127..222.222这样的字符 。。。
    char buff[16] = {0};
    int  str_block_count = 0;
    while((pstr = TakeOutStringByChar(pstr,'.',buff,16)))
    {
        int i = atoi(buff);
        if(i<0 || i>255)
          return false;
        ++str_block_count;
    }
    if(str_block_count!=4)
        return false;
    return true;
}

Tags:检测 是不是 合法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接