#ifndef __DB_H__ #define __DB_H__ #include #include 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(); // 查询 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); // 删除 extern int delete (const char *sql, MYSQL_BIND *params); // 更新 extern int update(const char *sql, MYSQL_BIND *params); // 添加路由表 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); // 更新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); // 打印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); // 判断目的 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); #endif