路由模块: 删除重构后的多余代码

This commit is contained in:
flykhan 2023-09-23 16:37:01 +08:00
parent ba83a05138
commit 925c1f68e6
2 changed files with 35 additions and 69 deletions

View File

@ -24,35 +24,6 @@ void net_init()
printf("数据库连接错误\n");
}
// MySQL 测试
int is_blocked_ip(unsigned char *ip)
{
char sql[1024] = "";
sprintf(sql, "select * from ip_fw where ip = '%s'", ip);
int rows = result_rows(sql);
printf("打印 %s\n", sql);
printf("rows: %d\n", rows);
// execlp("iptables", "iptables", "-A", "FORWARD", "-s", ip, "-j", "DROP", NULL); // 将源IP地址加入防火墙
execlp("iptables", "iptables", "-D", "FORWARD", "-s", ip, "-j", "DROP", NULL); // 将源IP地址加入防火墙
// 获取行数
if (rows > 0)
{
printf("IP地址 %s 在黑名单中\n", ip);
// execlp("iptables", "iptables", "-A", "FORWARD", "-s", ip, "-j", "DROP", NULL); // 将源IP地址加入防火墙
// 从防火墙删除
execlp("iptables", "iptables", "-D", "FORWARD", "-s", ip, "-j", "DROP", NULL); // 将源IP地址加入防火墙
return 0;
}
else
{
printf("IP地址 %s 不在黑名单中\n", ip);
return -1;
}
}
void show()
{
printf("**************************************************\n");
@ -73,41 +44,6 @@ void show()
printf("**************************************************\n");
}
// 判断IP地址格式是否正确
int is_ip_valid(const char *ip)
{
regex_t regex; // 正则表达式
int ret;
// 编译正则表达式
ret = regcomp(&regex, "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", REG_EXTENDED); // REG_EXTENDED 扩展正则表达式
if (ret != 0)
{
printf("regcomp error\n");
return -1;
}
// 执行正则表达式
ret = regexec(&regex, ip, 0, NULL, 0);
regfree(&regex); // 释放正则表达式
if (ret == 0)
{
printf("IP地址格式正确\n");
return 0;
}
else if (ret == REG_NOMATCH)
{
printf("IP地址格式非法\n");
return -1;
}
else
{
printf("正则表达式匹配错误\n");
return -1;
}
}
// 终端控制菜单
void menu_choice()
{
@ -235,4 +171,39 @@ void menu_choice()
printf("输入错误,请重新输入\n");
}
}
}
// 判断IP地址格式是否正确
int is_ip_valid(const char *ip)
{
regex_t regex; // 正则表达式
int ret;
// 编译正则表达式
ret = regcomp(&regex, "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", REG_EXTENDED); // REG_EXTENDED 扩展正则表达式
if (ret != 0)
{
printf("regcomp error\n");
return -1;
}
// 执行正则表达式
ret = regexec(&regex, ip, 0, NULL, 0);
regfree(&regex); // 释放正则表达式
if (ret == 0)
{
printf("IP地址格式正确\n");
return 0;
}
else if (ret == REG_NOMATCH)
{
printf("IP地址格式非法\n");
return -1;
}
else
{
printf("正则表达式匹配错误\n");
return -1;
}
}

View File

@ -24,15 +24,10 @@
// int sockfd; // 原始套接字
int ret; // 调用数据库的返回值
char *errmsg; // 错误信息
char **dbResult;
int nrow;
int ncolumn;
void menu_choice();
void show(void); // 后端控制菜单
void net_init(); // 网络初始化
void *net_task(void *arg); // 网络任务
int is_blocked_ip(unsigned char *ip); // 黑名单探测
void printResult(MYSQL_ROW row, char (*columns)[30], int cols); // 显示查询结果的回调函数
int is_ip_valid(const char *ip); // 检查ip地址是否合法