How do you validate that a string is a valid IPv4 address in C++?

前端 未结 17 2058
悲哀的现实
悲哀的现实 2020-12-04 23:21

I don\'t need to validate that the IP address is reachable or anything like that. I just want to validate that the string is in dotted-quad (xxx.xxx.xxx.xxx) IPv4 format, w

17条回答
  •  离开以前
    2020-12-05 00:09

    Here's one straightforward method.

    bool IsIPAddress(std::string & ipaddr)
        {    
    
        StringTokenizer quads(ipaddr,".");
    
        if (quads.countTokens() != 4) return false;
    
        for (int i=0; i < 4; i++)
          {
          std::string quad = quads.nextToken();
          for (int j=0; j < quad.length(); j++
             if (!isdigit(quad[j])) return false;
    
          int quad = atoi(quads.GetTokenAt(i));
          if (quad < 0) || (quad > 255)) return false;
          }
    
        return true;
        }
    

提交回复
热议问题