在C语言中,要判断一个IP地址是否合法,我们可以按照以下步骤进行: 定义合法IP地址的格式: 一个合法的IPv4地址由四个部分组成,每个部分是一个0到255之间的整数。 这四个部分由三个点(.)分隔。 编写函数: 定义一个函数,接收一个字符串参数作为待验证的IP地址。 分割IP地址: 使用字符串处理函数将IP地址按"....
is_valid_ip("192.249.23.123"); }
方法1: 判断各个部分是否合法 intis_valid_ip(constchar*ip_str) { unsignedintn1,n2,n3,n4; if(sscanf(ip_str,"%u.%u.%u.%u",&n1,&n2,&n3,&n4) !=4) { return0; } if( (n1!=0)&&(n1<=255)&&(n2<=255)&&(n3<=255)&&(n4<=255) ) { char buf[64]; sprintf(buf,"%u.%u.%u.%u"...
***Function:判断ip地址是否合法 ***Input: str IP地址 ***Output: TRUE 合法 FALSE 不合法 ***/ int checkIP(const char * str) { //const char * str 表示其指针所指向的内容是只读的,不能被修改 //ip地址默认采用IPv4的点分十进制法,合法地址为0.0.0.0-255.255.255.255 int ret = 0; const cha...
(用用 inet_addr 有问题) 对 ip 地址进行判断, 可以用很多方法, 比如正则表达式和直接解析法。 但是, 并不是所有的朋友都会正则表达式, 直接解析法则繁琐易错。 下面, 我们换一个思路, 看看如何判断 ip 地址的合法性(其实这个程序有问题): #include <stdio.h> #include <winsock2.h> #pragma comment(lib,...
C++判断IP地址字符串的合法性 最近改BUG,需要对一个IP地址字符串进行合法性检查,由于时间充裕,所以多折腾了下。 目前的解决方法可以归为以下三类: 1、自己动手写:以'.'将IP字符串分割成子串,再依次判断每个子串的每个字符是否都是数字,最后转换成值,判断是否在0~255的范围。
if (setions >= 0 && setions <= 255) { /*检查ip是否合法*/ setions = 0;p++;continue;} return 0;} else if (*p >= '0' && *p <= '9') { if (p != ip && *(p - 1) == '0' && *(p - 2) == '.')return 0;/*判断是不是数字*/ setions = setions * ...
ip地址 必须是 a.b.c.d的形式 所以 最简单的方法 就是把ip地址存成字符串str 然后 int a,b,c,d;a=b=c=d=-1;sscanf(str,"%d.%d.%d.%d", &a,&b,&c,&d);define chk(x) (x<0 || x>255)if(chk(a) || chk(b)||chk(c)||chk(d)) printf("failed");else { printf(...
C语言检查ip是否合法 在工作当中我们经常会遇到这种问题:判断一个输入的字符串是否为合法的IP地址,下面是一个测试小程序: 1#include <stdio.h>2#include <string.h>3#include <stdlib.h>4#include <stdbool.h>56boolisVaildIp(constchar*ip)7{8intdots =0;/*字符.的个数*/9intsetions =0;/*ip每一...
判断一个ip地址合法性(基础c,不用库函数) #include <stdio.h>intjudge(char*strIp);intmain() {chara[20];while(1) { scanf("%s", a);if(0==judge(a)) { printf("this is a correct ip\n"); } } }intjudge(char*strIp) { if(NULL == strIp)...