2023-09-22 15:16:23 +08:00
|
|
|
#ifndef __DB_H__
|
|
|
|
#define __DB_H__
|
|
|
|
|
2023-09-20 16:13:41 +08:00
|
|
|
#include <mysql/mysql.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
static MYSQL *conn_db = NULL;
|
|
|
|
|
|
|
|
// 连接
|
|
|
|
extern int connect_mysql(const char *host, int port, const char *user, const char *pwd, const char *db_name);
|
|
|
|
|
|
|
|
// 关闭
|
|
|
|
extern int close_mysql();
|
|
|
|
|
2023-09-22 15:16:23 +08:00
|
|
|
// 查询
|
2023-09-20 16:13:41 +08:00
|
|
|
extern int query(const char *sql, void (*callback)(MYSQL_ROW row, char (*columns)[30], int cols));
|
|
|
|
|
|
|
|
// 返回查询结果的行数
|
|
|
|
extern int result_rows(const char *sql);
|
|
|
|
|
|
|
|
// 插入
|
|
|
|
extern int insert(const char *sql, MYSQL_BIND *params);
|
|
|
|
|
2023-09-21 09:51:03 +08:00
|
|
|
// 删除
|
2023-09-22 15:16:23 +08:00
|
|
|
extern int delete (const char *sql, MYSQL_BIND *params);
|
2023-09-20 16:37:44 +08:00
|
|
|
|
2023-09-20 16:13:41 +08:00
|
|
|
// 更新
|
|
|
|
extern int update(const char *sql, MYSQL_BIND *params);
|
2023-09-22 15:16:23 +08:00
|
|
|
|
|
|
|
// 添加路由表
|
|
|
|
extern void insert_routing_list(const char *ip, const char *mask, const char *nexthop);
|
|
|
|
|
|
|
|
// 删除路由表中的一条记录
|
|
|
|
extern void delete_routing_list(const char *ip);
|
|
|
|
|
|
|
|
// 打印路由表
|
|
|
|
extern void print_routing_list();
|
|
|
|
|
|
|
|
// 打印查询结果的回调函数
|
|
|
|
extern void printResult(MYSQL_ROW row, char (*columns)[30], int cols);
|
|
|
|
|
|
|
|
// 添加ARP表
|
|
|
|
extern void insert_arp_list(const char *ip, const char *mac);
|
|
|
|
|
2023-09-23 16:25:12 +08:00
|
|
|
// 更新ARP表中的一条记录
|
|
|
|
extern void update_arp_list_by_ip(const char *ip, const char *mac);
|
|
|
|
|
|
|
|
// 查询ARP表中是否存在此IP
|
|
|
|
extern int search_arp_list_if_ip_have(const char *ip);
|
|
|
|
|
2023-09-22 15:16:23 +08:00
|
|
|
// 打印ARP表
|
|
|
|
extern void print_arp_list();
|
|
|
|
|
|
|
|
// 添加黑名单
|
|
|
|
extern void insert_ip_fw(const char *ip);
|
|
|
|
|
|
|
|
// 查询黑名单中是否存在此IP
|
|
|
|
extern int search_ip_fw(const char *ip);
|
|
|
|
|
|
|
|
// 打印黑名单
|
|
|
|
extern void print_ip_fw();
|
|
|
|
|
|
|
|
// 删除黑名单中的一条记录
|
|
|
|
extern void delete_ip_fw(const char *ip);
|
|
|
|
|
2023-09-23 16:25:12 +08:00
|
|
|
// 判断目的 IP 是否在路由表中
|
|
|
|
extern int is_in_routing_table(const char *dst_ip);
|
|
|
|
|
|
|
|
// 获取下一跳 IP
|
|
|
|
extern void get_next_hop_ip(const char *dst_ip, char *next_hop_ip);
|
|
|
|
|
|
|
|
// 获取默认网关 IP
|
|
|
|
extern void get_default_gateway_ip(char *gateway_ip);
|
|
|
|
|
|
|
|
// 判断 IP 是否在 ARP 表中
|
|
|
|
extern int is_in_arp_table(const char *ip);
|
|
|
|
|
|
|
|
// 获取 MAC 地址
|
|
|
|
extern void get_mac_address(const char *ip, char *mac_address);
|
|
|
|
|
|
|
|
// 回调函数:从查询结果中获取下一跳 IP
|
|
|
|
extern void fetch_next_hop_ip(MYSQL_ROW row, char (*columns)[30], int cols);
|
|
|
|
|
|
|
|
// 回调函数:从查询结果中获取默认网关 IP
|
|
|
|
extern void fetch_gateway_ip(MYSQL_ROW row, char (*columns)[30], int cols);
|
|
|
|
|
|
|
|
// 回调函数:从查询结果中获取 MAC 地址
|
|
|
|
extern void fetch_mac_address(MYSQL_ROW row, char (*columns)[30], int cols);
|
|
|
|
|
2023-09-22 15:16:23 +08:00
|
|
|
#endif
|