/* * */ #ifndef IPSCAN_H #define IPSCAN_H #define _XOPEN_SOURCE 600 //必须设置这个否则管道方法无法使用 #include #include #include #include #include #include #include #include #include #include "typeorigin.h" #define DEVTYPE "jda901" #ifdef AZL5083 #define DEVNAME "AZL5083" #define ETHNAME_INSIDE "eth0" #define ETHNAME_OUTSIDE "eth1" #elif defined SZR303 // AZL 为识别头,必须使用 AZL 开头 #define DEVNAME "AZLR303" #define ETHNAME_INSIDE "ens0" #define ETHNAME_OUTSIDE "ens1" #elif defined MW335 #define DEVNAME "MW335" #else #define DEVNAME "UNKNOWN" #define ETHNAME_INSIDE "ens33" #define ETHNAME_OUTSIDE "ens33" #endif #define PART_TYPE_SIZE 8 #define PART_NAME_SIZE 8 #define PART_IP_SIZE 16 #define PART_MAC_SIZE 20 #define RECV_BUF_SIZE 11 // 接收缓冲区大小,对侧协议决定 #define SEND_BUF_SIZE 128 // 发送缓冲区大小,对侧协议决定 typedef struct _server_udp { ST_INT port; // 本地端口 ST_CHAR ip[32]; // 本地ip地址 ST_INT sock; // 本地 socket struct SOCKADDR addr; // 服务器连接属性 } server_udp; ST_RET InitSystem(); ST_RET InitAndStartUdpServer(server_udp *server, ST_INT port); ST_RET SeletsUDPData(server_udp *server); //select 超时阻塞模式 ST_RET RecvUdpData(server_udp *server); // 普通阻塞模式 ST_RET SendUdpData(server_udp *server , struct SOCKADDR *client_addr, ST_CHAR *data, ST_INT len); // 解析 客户端的buff ST_RET ParseClientBuff(server_udp *server, struct SOCKADDR *client_addr, ST_CHAR *buff); ST_RET CloseUdpServer(server_udp *server); // 获取设备信息 ST_RET GetDevInfo(ST_CHAR *buff, ST_INT buff_len); ST_RET GetIPAddr(ST_CHAR *buff, const ST_CHAR *ethname); ST_RET GetMacAddr(ST_CHAR *buff, const ST_CHAR *ethname); // 设置网关 ST_RET SetGateway(ST_CHAR *ethname); ST_RET EXEC_CMD(const ST_CHAR *cmd, ST_CHAR *result, ST_INT ret_len); ST_VOID PrintBuffer(ST_UCHAR *buff, ST_INT len); #endif