2 zxorange321 zxorange321 于 2014.12.11 18:16 提问

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);

1个回答

qq_26525273
qq_26525273   2016.09.20 16:06

肯定一样啊,属于同一个流的包

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!