验证 IP 地址的 C 程序
在这个程序中,我们将看到如何使用C验证IP地址。IPv4地址以点十进制表示法表示。有四个十进制数(都在0到255之间)。这四个数字由三个点分隔。
有效IP的示例是:192.168.4.1
要验证IP地址,我们应该按照以下步骤操作
使用点“.”标记字符串(IP地址)。分隔符
如果子字符串包含任何非数字字符,则返回false
如果每个标记中的数字不在0到255的范围内,则返回false
如果正好有三个点和四个部分,那么它就是一个有效的IP地址
示例代码
#include输出结果#include #include #include int validate_number(char *str) { while (*str) { if(!isdigit(*str)){ //如果字符不是数字,则返回 false return 0; } str++; //指向下一个字符 } return 1; } int validate_ip(char *ip) { //检查IP是否有效 int i, num, dots = 0; char *ptr; if (ip == NULL) return 0; ptr = strtok(ip, "."); //使用do分隔符剪切字符串 if (ptr == NULL) return 0; while (ptr) { if (!validate_number(ptr)) //检查子字符串是否为 holding only number or not return 0; num = atoi(ptr); //将子字符串转换为数字 if (num >= 0 && num <= 255) { ptr = strtok(NULL, "."); //剪下字符串的下一部分 if (ptr != NULL) dots++; //增加点数 } else return 0; } if (dots != 3) //如果点数不是3,则返回false return 0; return 1; } int main() { char ip1[] = "192.168.4.1"; char ip2[] = "172.16.253.1"; char ip3[] = "192.800.100.1"; char ip4[] = "125.512.100.abc"; validate_ip(ip1)? printf("Valid\n"): printf("Not valid\n"); validate_ip(ip2)? printf("Valid\n"): printf("Not valid\n"); validate_ip(ip3)? printf("Valid\n"): printf("Not valid\n"); validate_ip(ip4)? printf("Valid\n"): printf("Not valid\n"); }
Valid Valid Not valid Not valid