71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
/**
|
|
* 该文件用于匹配arp.html
|
|
* 使用该.c文件可实现从名为router的数据库中
|
|
* 查询存有arp数据的ip_mac表
|
|
*/
|
|
|
|
#include <cjson/cJSON.h>
|
|
#include <fcntl.h>
|
|
#include <mysql/mysql.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <sys/stat.h>
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
|
|
int main() {
|
|
MYSQL *conn;
|
|
MYSQL_RES *res;
|
|
MYSQL_ROW row;
|
|
|
|
conn = mysql_init(NULL);
|
|
if (conn == NULL) {
|
|
fprintf(stderr, "mysql_init() failed\n");
|
|
exit(1);
|
|
}
|
|
|
|
if (mysql_real_connect(conn, "localhost", "flykhan", "1202", "router", 3306,
|
|
NULL, 0) == NULL) {
|
|
fprintf(stderr, "mysql_real_connect() failed\n");
|
|
mysql_close(conn);
|
|
exit(1);
|
|
}
|
|
|
|
if (mysql_query(conn, "SELECT * FROM ip_mac")) {
|
|
fprintf(stderr, "SELECT query failed. Error: %s\n", mysql_error(conn));
|
|
mysql_close(conn);
|
|
exit(1);
|
|
}
|
|
|
|
res = mysql_store_result(conn);
|
|
if (res == NULL) {
|
|
fprintf(stderr, "mysql_store_result() failed\n");
|
|
mysql_close(conn);
|
|
exit(1);
|
|
}
|
|
|
|
cJSON *result_array = cJSON_CreateArray();
|
|
|
|
while ((row = mysql_fetch_row(res))) {
|
|
cJSON *item = cJSON_CreateObject();
|
|
cJSON_AddStringToObject(item, "id", row[0]);
|
|
cJSON_AddStringToObject(item, "ip", row[1]);
|
|
cJSON_AddStringToObject(item, "mac", row[2]);
|
|
cJSON_AddItemToArray(result_array, item);
|
|
}
|
|
|
|
char *result_json_string = cJSON_Print(result_array);
|
|
|
|
printf("Content-Type: application/json;charset=utf-8\r\n");
|
|
printf("\r\n");
|
|
printf("%s", result_json_string);
|
|
|
|
free(result_json_string);
|
|
cJSON_Delete(result_array);
|
|
mysql_free_result(res);
|
|
mysql_close(conn);
|
|
|
|
return 0;
|
|
}
|