我正在使用数据包捕获库,我已经将它打印出来的数据包IP地址到控制台使用它正常工作:
printf(" From: %s\n", inet_ntoa(ip->ip_src));
printf(" To: %s\n", inet_ntoa(ip->ip_dst));
Run Code Online (Sandbox Code Playgroud)
下面几行我用不同的.C文件调用一个方法,使用它传递IP地址和端口号:
addpacket(0, inet_ntoa(ip->ip_src), inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport));
Run Code Online (Sandbox Code Playgroud)
方法是: 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);
Run Code Online (Sandbox Code Playgroud)
我得到这样的结果:
---------------------SRC:192.168.1.64
---------------------DST:192.168.1.64
---------------------PRT:60549
Run Code Online (Sandbox Code Playgroud)
其中源和目标IP地址始终相同.我找不到任何混合起来的地方.如果我在原始.C文件中将其打印到控制台,则会显示正确的IP地址,但在方法调用期间似乎混淆了一些东西.有任何想法吗?
| 归档时间: |
|
| 查看次数: |
32 次 |
| 最近记录: |