【发布时间】:2015-04-08 01:28:25
【问题描述】:
我正在使用一个数据包捕获库,我已经将数据包 IP 地址打印到控制台,使用它工作正常:
printf(" From: %s\n", inet_ntoa(ip->ip_src));
printf(" To: %s\n", inet_ntoa(ip->ip_dst));
下面几行,我在不同的 .C 文件中调用了一个方法,使用它传递 IP 地址和端口号:
addpacket(0, inet_ntoa(ip->ip_src), inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport));
方法是:void addpacket(int table, char *srcIP, char *dstIP, int port) {...}
但在 addpacket 方法中,我将这个打印到控制台:
printf("---------------------SRC:%s\n", srcIP);
printf("---------------------DST:%s\n", dstIP);
printf("---------------------PRT:%i\n", port);
我得到这样的结果:
---------------------SRC:192.168.1.64
---------------------DST:192.168.1.64
---------------------PRT:60549
源 IP 地址和目标 IP 地址始终相同。我找不到任何地方我把它弄混了。如果我在原始 .C 文件中将其打印到控制台,则会出现正确的 IP 地址,但在方法调用期间似乎有些混乱。有什么想法吗?
【问题讨论】: