一、简单说说
- 最近在项目开发中用到的几个很实用的小函数推荐给大家,提高开发时间效率!话不多说,直接上代码哈 ~
IP合法检验函数
- 凡是有一点点错误的IP地址统统卡死,哎,都是面向测试部编程的经验 !!!。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#define FALSE 0
#define TRUE 1
bool ip_check(const char *ip)
{
int dots = 0;
int setions = 0;
char ip_temp[16+1] = {0};
char *token = NULL;
strncpy(ip_temp, ip, sizeof(ip_temp));
token = strtok(ip_temp, ".");
while (token != NULL)
{
printf("token:<%s>\n",token);
if (strlen(token) > 3)
{
return FALSE;
}
token = strtok(NULL, ".");
}
if (NULL == ip || *ip == '.')
{
return FALSE;
}
while (*ip)
{
if (*ip == '.')
{
dots ++;
if (setions >= 0 && setions <= 255)
{
setions = 0;
ip++;
continue;
}else
{
return FALSE;
}
}
else if (*ip >= '0' && *ip <= '9')
{
setions = setions * 10 + (*ip - '0');
} else
return FALSE;
ip++;
}
if (setions >= 0 && setions <= 255)
{
if (dots == 3)
{
return TRUE;
}
}
return FALSE;
}
int main()
{
if (ip_check("1.01.255.0255") == TRUE)
{
printf("is ip is ok!\n");
}else
{
printf("is ip is err!!!\n");
}
return 0;
}
MAC合法检验函数
- 说明一下mac地址的分隔符可能有所不同,改一下分隔符即可。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#define FALSE 0
#define TRUE 1
bool mac_check(const char *mac)
{
int dots = 0;
char mac_temp[17+1] = {0};
char *token = NULL;
if (NULL == mac || *mac == '.')
{
return FALSE;
}
if(strlen(mac) != 17)
{
return FALSE;
}
strncpy(mac_temp, mac, sizeof(mac_temp));
printf("mac:<%s\n>",mac);
printf("mac_temp<%s\n>",mac_temp);
token = strtok(mac_temp, ":");
while (token != NULL)
{
printf("mac:<%s>\n",token);
if (strlen(token) != 2)
{
return FALSE;
}
while (*token)
{
printf("*token:<%c>\n",*token);
if ('0' <= *token && *token <= '9')
{
;
}
else if ('A' <= *token && *token <= 'F')
{
;
}
else if ('a' <= *token && *token <= 'f')
{
;
}
else
{
return FALSE;
}
token++;
}
token = strtok(NULL,":");
dots++;
}
if (dots != 6)
{
printf("dots:<%d>\n",dots);
return FALSE;
}
else
{
return TRUE;
}
}
int main()
{
if (mac_check("BC:54:2F:BF:5E:,8") == TRUE)
{
printf("is mac is ok!\n");
}else
{
printf("is mac is err!!!\n");
}
return 0;
}
看完后感觉得到帮助的小伙伴,要点点赞哦~ 给笔者一些动力嘛!谢谢啦~
|