为了实现这个功能, 今天写了一个, 在这里记录下来.
typedef unsigned char uint8_t; typedef unsigned short uint16_t; static uint8_t is_ip_address(uint8_t* host, uint8_t ipBuf[4]){ uint8_t* p=host; uint8_t fieldIndex=0; uint8_t numberNum=0; uint16_t fieldValue=0; while(*p){ if(*p>='0' && *p<='9'){ numberNum++; fieldValue*=10; fieldValue+=(*p-'0'); if(fieldValue>255) return 0; } else if(*p=='.'){ if(numberNum==0) return 0; ipBuf[fieldIndex]=fieldValue; fieldIndex++; if(fieldIndex>=4) return 0; numberNum=fieldValue=0; } else return 0; p++; } if(fieldIndex!=3 || numberNum==0) return 0; ipBuf[3]=fieldValue; return 1; }