产品概述
实例类型对比
产品功能
应用场景
产品规格上限说明
bool InitUpToaFetcher(char *ncard_ip_str, char *svr_ip_str, u_short svr_port[], u_short svr_port_num, u_short cache_secs=TIMER_CACHE_SECS)
bool FetchToaValue(u_long fake_client_ip_addr, u_short fake_client_port, u_long &real_client_ip_addr, u_short &real_client_port)
void StopToaFetcher()
int GetFetcherStatus()
HANDLE FetchThreadHandler()
bool FetchErrorInfo(int* err_code_ptr, char* err_msg_ptr)
错误码 | 错误信息 | 说明 |
0 | Ok | 正常 |
-1001 | Exceed max server port number | 超过最大的端口数,请检查 InitUpToaFetcher:svr_port_num。 |
-1002 | Invalid IP address | 非法的 IPv4 地址。 |
-1003 | No suitable network interface | 未找到合适的网络接口。 |
-1004 | System Error: find dev error | 系统错误:未找到 dev,请联系 lib 开发者。 |
-1005 | System Error: start timer error | 系统错误:定时器启动错误,请联系 lib 开发者。 |
-1006 | System Error: compile filter error | 系统错误:过滤规则编译错误,请联系lib开发者。 |
-1007 | System Error: set filter error | 系统错误:过滤规则设置错误,请联系 lib 开发者。 |
-1008 | System Error: open pcap error | 系统错误:打开 dev 错误,请联系 lib 开发者。 |
-1009 | System Error: start pcap error | 系统错误:启动监听错误,请联系 lib 开发者。 |
-1010 | System Error: begin thread error | 系统错误:启动线程错误,请联系 lib 开发者。 |
-1999 | Unknown error | 未知错误,请联系 lib 开发者。 |
char ncard_ip_str[] = "1.1.1.1";char svr_ip_str[] = "1.1.1.1";char port_range[3][100] = {"10001-10005", "20001-20005", "30001-30005"};char* port_range_ptr[3] = {port_range[0], port_range[1], port_range[2]};u_short svr_port_list[3] = {1111, 2222, 3333};ToaFetcher inst = ToaFetcher();inst.InitUpToaFetcher((char*)ncard_ip_str, (char*)svr_ip_str, svr_port_list, 3);
void GetToa(SOCKADDR_IN client_addr, ToaFetcher * toa_fetcher_ptr){u_long fake_client_ip_addr = 0;u_short fake_client_port = 0;u_long real_client_ip_addr = 0;u_short real_client_port = 0;memcpy(&fake_client_ip_addr, &client_addr.sin_addr, 4);memcpy(&fake_client_port, &client_addr.sin_port, 2);bool ret = toa_fetcher_ptr->FetchToaValue(fake_client_ip_addr, fake_client_port, real_client_ip_addr, real_client_port);if(ret == FALSE){printf("No toa found\\n");}else{//fpp: 自定义的打印函数fpp("real_client_ip_addr", &real_client_ip_addr, 4);fpp("real_client_port", &real_client_port, 2);}}
| ID(4Bytes)| FakeIPAddress(4Bytes)| FakePort(2Bytes)|字段说明如下:| ID(4Bytes)| Code(1Byte)| RealIPAddress(4Bytes)| RealPort(2Bytes)|字段说明如下:func queryToa(serverAddr string, fakeIp string, fakePort uint16)(int32, string, uint16)
文档反馈