判断是否为有效IP的方法
- 字符串验证 :比较麻烦,且容易考虑不全;
- 正则表达式: C++11之后支持;
- IP地址与网络传输数值转换: 高效,优于正则表达式;
正则表达式和网络数值转换的比较
#include <regex>
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/time.h>
using namespace std;
unsigned long long get_ms()
{
struct timeval time_v = {
0 };
gettimeofday(&time_v, NULL);
return (unsigned long long)time_v.tv_sec * 1000 + time_v.tv_usec / 1000;
}
int main()
{
string ip("199.199.199.199");
regex check_ip("(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])[.](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])[.](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])[.](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])");
struct in_addr s;
uint64_t start_time1 = get_ms();