parseip.c 285 B

123456789101112131415161718192021222324
  1. #include <cdefs.h>
  2. #include <format.h>
  3. char* parseip(char* p, uint8_t ip[4])
  4. {
  5. int i, n;
  6. for(i = 0; i < 4; i++) {
  7. if(i && *p != '.')
  8. return NULL;
  9. if(i) p++;
  10. if(!(p = parseint(p, &n)))
  11. return NULL;
  12. if(n < 0 || n > 255)
  13. return NULL;
  14. ip[i] = n;
  15. }
  16. return p;
  17. }