有没有什么高效地判断一个字符串是IP还是域名的方法?

解决方案 »

  1.   

        foreach(char   cha   in   yourstring)   
        {     
            if   (cha<'0'||cha>'9' || cha='.')   
             是IP   
          else   
              
        }楼上就对 来蹭个分
      

  2.   

    搞反了!    foreach(char  cha  in  yourstring)  
        {    
            if  (cha 》'0'||cha《'9' || cha='.')  
            是IP  
          else  
              
        } 
      

  3.   

    这个函数应该可以工作bool IsaIPv4(const char *psz)
    {
    if(strlen(psz) > 15 || strlen(psz) < 7) return false;
    int iPoint = 0;
    const char *b = psz;
    while(*psz)
    {
    if(*psz == '.') 
    {
    if(psz-b < 1) return false;
    if(psz-b > 1 && *b == '0') return false;
    if(atoi(b) > 255) return false;
    iPoint++;
    b = psz+1;
    }
    else if(!isdigit(*psz)) return false;
    psz++;
    } return (iPoint == 3);
    }
      

  4.   

    修订一下,一个小函数也要认真写才能不出错:)bool IsaIPv4(const char *psz)
    {
    if(strlen(psz) > 15 || strlen(psz) < 7) return false;
    int iPoint = 0;
    const char *b = psz;
    while(*psz)
    {
    if(*psz == '.') 
    {
    if(psz-b < 1) return false;
    if(psz-b > 1 && *b == '0') return false;
    if(atoi(b) > 255) return false;
    iPoint++;
    b = psz+1;
    }
    else if(!isdigit(*psz)) return false;
    psz++;
    }
            if(iPoint != 3) return false;
    if(psz-b < 1) return false;
    if(psz-b > 1 && *b == '0') return false;
    if(atoi(b) > 255) return false; return true;
      

  5.   

    上面的答案真搞笑,除了一楼的.微软已经提供API去判断.if (inet_addr(Host) != INADDR_NONE)   // 非域名还判断是不是字母什么的,中文域名都出来了.
      

  6.   

    std::string str;//要判断的字符串
    std::string strSubStr = "0123456789,";
    if (std::string::npos != str.find_first_not_of(strSubStr))
    {
      // 域名
    }
    else
    {
      Ip
    }
      

  7.   

    看用法了
    写写函数并无坏处,也不见得可笑
    要知道inet_addr 认为 "0XBC.0355.0.0"也是一个合法的IPV4,实践中,可能不这样想
      

  8.   

    isalpha(szAddressName[0]) 如果是真 那么就是域名了
    我们都是这么判断的
      

  9.   


    这没什么搞笑的,你只是提供了一个方法,其他人提供的原理。你只知道使用,那你知道inet_addr()是如何做到的么