Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
2.1 kB
2
Indexable
Never
int stringToInteger(char * input)
{
    int i = 0;
    int ret = 0;
    
    for ( i = strlen(input) -1; i >=0; i-- )
    {
        ret += ((int)input[i] - 48) * pow(10, strlen(input) - 1 - i);
    }
   
    return ret;

}

void sliceString(char *input, int start, int end, char * output)
{
    int i;
    for (i= start; i <= end; i++)
    {
        output[i-start] = input[i];
    }
    output[end-start+1] = '\0';
    
    
}

int isIPv4Address(char * inputString) {
    int i =0 ;
    int j=0;
    int k = 0;
    int count = 0;
    char IPAddress[4];
    int ret_val = true;
    char temp[30];
    
    
    while (inputString[i] != '\0')
    {
       
        if (((inputString[i] > '9' ) || (inputString[i] < '0')) && (inputString[i] != '.' ))
        {
            ret_val = false;
            break;
        }
        if (inputString[i] == '.')
        {
            
            
            if (count == 3)
            {
               ret_val = false;
                break;
            }
            
            sliceString(inputString, k, i-1, temp);
            if (strlen(temp) == 0)
            {
                ret_val = false;
                break;
            }
                        int integerValue = stringToInteger(temp);
            if ((integerValue > 255) || (integerValue < 0)) {
                ret_val = false;
                break;
            }
            k = i + 1;
            count++;
            temp[0] = '\0';
        }
        if (count == 3) {
            sliceString(inputString, k, strlen(inputString) - 1, temp);
            if (strlen(temp) == 0) {
                ret_val = false;
                break;
            }
            int integerValue = stringToInteger(temp);
            if ((integerValue > 255) || (integerValue < 0)) {
                ret_val = false;
                break;
            }
        }
        i++;
    }
    if (count < 3 )
    {
        ret_val = false;
    }
    return ret_val;
}