#include/* This is a routine designed to parse the ipv4 dot notation. Given a string with a dot notation value between 0.0.0.0 and 255.255.255.255 make sure this is a valid string of that format. */ static char ** string; char * str; int parseNum(){ int value = 0; if (*string && isdigit(*string[0])){ value = value*10+*string[0]-'0'; str = *string; str++; string = &str; if (*string && isdigit(*string[0])){ value = value*10+*string[0]-'0'; str = *string; str++; string = &str; if (*string && isdigit(*string[0])){ value = value*10+*string[0]-'0'; str = *string; str++; string = &str; } } } else { return 0; } if (value < 256) return 1; else return 0; } int parseDot(){ if (*string && *string[0] == '.') { str = *string; str++; string = &str; return 1; } else return 0; } int endOfString(){ if (*string && *string[0] == 0) return 1; else return 0; } int parseDotNotationV4 (char * stringtoparse){ string = &stringtoparse; if (parseNum()){ if (parseDot()){ if (parseNum()){ if (parseDot()){ if (parseNum()){ if (parseDot()){ if (parseNum()){ if (endOfString()){ // Good dot notation value return 1; } } } } } } } } // failure return 0; } printfParseDotNotationV4(char * string){ int returnVal = parseDotNotationV4(string); printf("%s %d\n", string, returnVal); return returnVal; } int main (){ int i,j,k,l; char string[1024]; printfParseDotNotationV4("255255.255.255"); printfParseDotNotationV4("2"); printfParseDotNotationV4("255.255.255.255.6"); printfParseDotNotationV4("255.255.256.255"); for(i=0; i<256; i=i+4){ for(j=0; j<256; j=j+4){ for(k=0; k<256; k=k+4){ for(l=0; l<256; l=l+4){ sprintf(string, "%d.%d.%d.%d", i, j, k, l); if (!parseDotNotationV4(string)) printf("%d failed when it should have been valid.", string); } } } } return 0; }
A blog devoted to challenging dogma, where ever and who ever is shoveling it.
Sunday, April 29, 2012
Simple ipv4 dot notation parser I wrote once.
ip.c an ipv4 dot notation parser.
Subscribe to:
Post Comments (Atom)
How Science Makes Simple Ideas Illegible So They Will Read as "Real Science"
J. Rogers, SE Ohio The Gatekeeping Reflex Einstein said it out loud Einstein criticized his own field in public, and he named the exact ...
-
So, I saw this kit on Amazon. It seemed too good too be true. The kit was priced right, it was less than 2 dollars for each board. Of co...
-
J. Rogers, SE Ohio Abstract Database query optimization is traditionally approached through indexing strategies, statistics updates, and har...
-
First the bad news. For som e reason the Amazon Web S ervice console was running very badly under F irefox. It was taking forever to load a...
No comments:
Post a Comment