Untitled
unknown
plain_text
2 years ago
2.1 kB
11
Indexable
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;
}
Editor is loading...