Untitled
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; }