c++判断ip地址是不是合法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++判断ip地址是不是合法相关的知识,希望对你有一定的参考价值。
判断一个IP地址是不是合法能判断格式,IP的范围,输入的不是数字。就记在这里了
#include "stdio.h"
#include "stdlib.h"
int parseIP(char *ip)
register char *temp = ip;
register int count = 0;
register int flag = 0;
char s1[5],s2[5],s3[5],s4[5];/*存放IP段*/
int ip_1,ip_2,ip_3,ip_4;
while(*temp != '\0')
if(*temp == '.')
count++;
temp++;
flag = sscanf(ip,"%[^.].%[^.].%[^.].%[^.]",s1,s2,s3,s4);
if(count != 3 || flag != 4)
printf("规则格式错误,");
return 0;
if(!(check(s1) && check(s2) && check(s3) && check(s4)))
printf("IP应为合法数字,");
return 0;
ip_1 = atoi(s1);
ip_2 = atoi(s2);
ip_3 = atoi(s3);
ip_4 = atoi(s4);
if( (0 <= ip_1 && ip_1 <= 255) && (0 <= ip_2 && ip_2 <= 255)
&& (0 <= ip_3 && ip_3 <= 255) && (0 <= ip_4 && ip_4 <= 255))
return 1;
else
printf("ip范围出错,");
return 0;
return 1;
int check(const char *p)
if(p == NULL)
return 0;
else
while(*p != '\0')
if(*p <= '9' && *p++ >= '0')
continue;
else
return 0;
return 1;
参考技术A 回答
确定IP地址的合法步骤:1、首先了解IP地址是什么,IP地址分为A类、B类、C类、D类、E类。A类的IP地址范围是0.0.0-127.255.255.255,B类是128.0.0.0-191.255.255,C类是192.0.0.0-223.255.255.255。2. 然后判断身份证的长度。在a级IP地址中,网络标识的长度为8位,主机标识的长度为24位,子网掩码为255.0.0。B类适用于网络ID长度为16位、主机ID长度为16位、子网掩码为255.255.0.0的中型网络。C类适用于网络标识长度为24位、主机标识长度为8位、子网掩码为255.255.255.0的小型局域网。3. 最后,判断是否合法。在每个合法IP地址中,有四个以“.”分隔的3位数字,每个3位数字介于0和255之间,包括255。我相信经过学习,我们已经知道如何判断IP地址是否合法。IP地址:Internet协议地址,缩写为IP地址。IP地址是IP协议提供的统一地址格式。它为因特网上的每个网络和每个主机分配一个逻辑地址,以屏蔽物理地址的差异
如何用C语言判断ip地址是不是合法
可以试一下
#include <stdio.h>int checkIP(const char* p)
int n[4];
char c[4];
if (sscanf(p, "%d%c%d%c%d%c%d%c",
&n[0], &c[0], &n[1], &c[1],
&n[2], &c[2], &n[3], &c[3])
== 7)
int i;
for(i = 0; i < 3; ++i)
if (c[i] != \'.\')
return 0;
for(i = 0; i < 4; ++i)
if (n[i] > 255 || n[i] < 0)
return 0;
return 1;
else
return 0;
int main()
const char* x[] =
"192.168.1.1",
"10.0.0.1.",
"127.256.0.1",
"iugerjiogjioe",
"172.16,0.1",
0
;
const char* m[] =
"不是合法的IP地址",
"是合法的IP地址"
;
int i = 0;
while(x[i] != 0)
printf("%s %s\\n", x[i], m[checkIP(x[i])]);
++i;
return 0;
参考技术A 回答
确定IP地址的合法步骤:1、首先了解IP地址是什么,IP地址分为A类、B类、C类、D类、E类。A类的IP地址范围是0.0.0-127.255.255.255,B类是128.0.0.0-191.255.255,C类是192.0.0.0-223.255.255.255。2. 然后判断身份证的长度。在a级IP地址中,网络标识的长度为8位,主机标识的长度为24位,子网掩码为255.0.0。B类适用于网络ID长度为16位、主机ID长度为16位、子网掩码为255.255.0.0的中型网络。C类适用于网络标识长度为24位、主机标识长度为8位、子网掩码为255.255.255.0的小型局域网。3. 最后,判断是否合法。在每个合法IP地址中,有四个以“.”分隔的3位数字,每个3位数字介于0和255之间,包括255。我相信经过学习,我们已经知道如何判断IP地址是否合法。IP地址:Internet协议地址,缩写为IP地址。IP地址是IP协议提供的统一地址格式。它为因特网上的每个网络和每个主机分配一个逻辑地址,以屏蔽物理地址的差异
以上是关于c++判断ip地址是不是合法的主要内容,如果未能解决你的问题,请参考以下文章
用java语言 截取字符串中的Ip地址,并判断是不是合法,请问怎么做? 例“ip addess 192.160.2.3” 判断合法