LightGunDiyer 光枪爱好者
arduino判断字符串是不是ip地址 - 可打印的版本

+- LightGunDiyer 光枪爱好者 (http://www.wukongxuetang.com/bbs)
+-- 版块: 光枪原理与光枪DIY (http://www.wukongxuetang.com/bbs/forumdisplay.php?fid=1)
+--- 版块: 光枪-单片机编程 (http://www.wukongxuetang.com/bbs/forumdisplay.php?fid=3)
+--- 主题: arduino判断字符串是不是ip地址 (/showthread.php?tid=38)



arduino判断字符串是不是ip地址 - wukong - 05-17-2024

boolean isIP(const char *ip) {
  int dots = 0; /*字符.的个数*/
  int setions = 0; /*ip每一部分总和(0-255)*/
  if (NULL == ip || *ip == '.') { /*排除输入参数为NULL, 或者一个字符为'.'的字符串*/
    return false;
  }

  while (*ip) {

    if (*ip == '.') {
      dots ++;
      if (setions >= 0 && setions <= 255) { /*检查ip是否合法*/
        setions = 0;
        ip++;
        continue;
      }
      return false;
    }
    else if (*ip >= '0' && *ip <= '9') { /*判断是不是数字*/
      setions = setions * 10 + (*ip - '0'); /*求每一段总和*/
    } else
      return false;
    ip++;
  }
 
  if (setions >= 0 && setions <= 255) {
    if (dots == 3) {
      return true;
    }
  }

  return false;
}