#include <stdio.h>
#include <string.h>
/**
* @brief 判断IPv4地址是否合法
* @param ip: 待校验的ip地址
* @return true: 校验成功 false:校验失败(IP地址不合法)
* @author PJW
*/
void IPv4_verify(char *ip) {
int a,b,c,d;
char t;
if (4 == sscanf(ip,"%d.%d.%d.%d%c",&a,&b,&c,&d,&t)){
if (0<=a && a<=255
&& 0<=b && b<=255
&& 0<=c && c<=255
&& 0<=d && d<=255){
printf("[%s] is valid IPv4\n", ip);
}else{
printf("[%s] is invalid IPv4\n", ip);
}
}else{
printf("[%s] is invalid IPv4\n", ip);
}
}
void main() {
char ip[50]="192.1.2.3.4567";
// char ip[50]="192.1.2.3";
IPv4_verify(ip);
}
执行结果:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
/**
* @brief 判断IPv4地址是否合法
* @param ip: 待校验的ip地址
* @return true: 校验成功 false:校验失败(IP地址不合法)
* @author PJW
*/
bool IPv4_verify(char *ip) {
int a,b,c,d;
char t;
if (4 == sscanf(ip,"%d.%d.%d.%d%c",&a,&b,&c,&d,&t)){
if (0<=a && a<=255
&& 0<=b && b<=255
&& 0<=c && c<=255
&& 0<=d && d<=255) {
return true;
}
}
return false;
}
void main() {
char ip[50]="192.1.2.3.4567";
// char ip[50]="192.1.2.3";
bool res = IPv4_verify(ip);
if(true == res){
printf("[%s] is valid IPv4\n", ip);
}else{
printf("[%s] is invalid IPv4\n", ip);
}
}