int check_ipv6(unsigned char *ip)
{
int f = 0;
int c = 0;
int fc = 0;
while (*ip) {
if ((*ip >= '0') && (*ip <= '9')){
f = 0;
}
else if ((*ip >= 'a') && (*ip <= 'f')){
f = 0;
}
else if ((*ip >= 'A') && (*ip <= 'F')){
f = 0;
}
else if (*ip == ':'){
c++;
f++;
if (f > 2){
return 0;
}
else if (f == 2){
fc++;
if (fc > 1){
return 0;
}
}
}
else{
return 0;
}
ip++;
}
return (c == 7) || (c == 2) || (c == 5);
{
int f = 0;
int c = 0;
int fc = 0;
while (*ip) {
if ((*ip >= '0') && (*ip <= '9')){
f = 0;
}
else if ((*ip >= 'a') && (*ip <= 'f')){
f = 0;
}
else if ((*ip >= 'A') && (*ip <= 'F')){
f = 0;
}
else if (*ip == ':'){
c++;
f++;
if (f > 2){
return 0;
}
else if (f == 2){
fc++;
if (fc > 1){
return 0;
}
}
}
else{
return 0;
}
ip++;
}
return (c == 7) || (c == 2) || (c == 5);
}
int waf_check_ipv4(char *ip)
{
int a, b, c, d;
if (sscanf(ip, "%3d.%3d.%3d.%3d", &a, &b, &c, &d) != 4)
return -1;
if (inet_addr(ip) == -1)
return -1;
if(d == 0||d==255||a== 0||a== 127 ||a==255||a>223)
return -1;
return 0;
}