判断一个字符串的ip是否是IP合法的ip地址

    xiaoxiao2021-12-14  18

    有时候弄一些网络通信,经常用到域名地址,在进行tcp初始的时候,需要判断提供的地址是IP还是域名地址。如果传入的是正确的域名地址,则判断不是IP后进行域名解析,如果是IP地址格式的直接进行TCP初始化连接,

          所以弄了个测试程序,判断获取的字符串是否是合法的IP地址,只是简单测试了下,可以正确判断,不过不保证没有错漏的。

    #include<stdio.h> #include<iostream> int check_if_ipaddr(unsigned char *ipstr){ int ret = -1; unsigned char dotnum = 0; unsigned short maxval = 0; while(*ipstr != '\0'){     if((*ipstr >= '0') && (*ipstr <= '9')){             maxval = maxval*10 + (*ipstr - '0');     }else if(*ipstr == '.'){             dotnum++;             if(dotnum > 3){             printf("dot num is large than 3\r\n");             return -1;     }      if(maxval< 0 || maxval >255){            printf("max value is larger than 255 value=%d\r\n",maxval);           return -1;       }       maxval = 0; }else{      printf("ipstring char is illegal \r\n");      return -1; }                ipstr++; } if(maxval >=0 && maxval <=255){ if(dotnum == 3){                     return 1; } } return -1; } int main() { int result = -1; unsigned char ipstradd[60] ="192.168.0.103";

    if(check_if_ipaddr(ipstradd) != 1) {  printf("is not ipaddr format.....\r\n"); }else{   printf("is  ipaddr format.....\r\n"); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-971973.html

    最新回复(0)