问题描述
- ndpi 源地址和目的地址
-
在nDPI里我想取到ip 包的saddr, 和 daddr , 我去拿的时候发现:
我用 flow->packet.iph.saddr 和 flow->packet.iph.daddr 拿到的每个包的两个地址都是一样的(应该是不一样的才对),我就不理解了。 端口号我在tcp层拿到了。问题:
1、 问什么拿到的地址是一样的?
2、 怎么才能拿到正确的不同的地址?这是内核打出的log:
[ 6455.916587] [NDPI] src_ipv4: 183.232.103.143, src_port: 43965, dst_ipv4: 183.232.103.143, dst_port: 80,这是log相关的代码:
typedef struct element7
{
ndpi_ip_addr_t src_ipv4;
u_int16_t src_port;
ndpi_ip_addr_t dst_ipv4;
u_int16_t dst_port;
u_int8_t* key;
u_int32_t packets_count;
u_int64_t flows_count;
} element7;struct element7 ele; struct element7 ele_reverse; memset(&ele, 0, sizeof(element7)); ndpi_packet_src_ip_get(packet, &ele.src_ipv4); ele.src_port = ntohs(packet->tcp->source); ndpi_packet_dst_ip_get(packet, &ele.dst_ipv4); ele.dst_port = ntohs(packet->tcp->dest); printf("[NDPI] src_ipv4: %s, src_port: %u, dst_ipv4: %s, dst_port: %u, n", ndpi_get_ip_string(ndpi_struct, &ele.src_ipv4), ele.src_port, ndpi_get_ip_string(ndpi_struct, &ele.dst_ipv4), ele.dst_port);
时间: 2024-10-29 08:14:58