代码来源:
http://www.cet.nau.edu/~mc8/Socket/Tutorials/section4.html
ip = (struct my_ip*)(packet + sizeof(struct ether_header)); //取得IP头部数据
主要输出语句:
fprintf(stdout,"%d %d %d %s ",version,hlen,proto,inet_ntoa(iphdr->ip_src));
fprintf(stdout," %s \n",inet_ntoa(iphdr->ip_dst));
fprintf(stdout,"%d %d %d %s %s\n",version,hlen,proto,inet_ntoa(iphdr->ip_src),inet_ntoa(iphdr->ip_dst));
前两句是网页上的,后一句是我把前两句写成了一句,按道理这样不应该有什么问题,可输出结果却???
输出:
[root@yqlyd root]# gcc mypcap20070524.c -o mypcap.o -lpcap
[root@yqlyd root]# ./mypcap.o >test.txt
4 5 6 172.16.10.170 134.114.64.3 //这里是正常的两个IP的输出
4 5 6 172.16.10.170 172.16.10.170 //这里的两个IP地址都是源IP 下面也是一样的???
4 5 6 134.114.64.3 172.16.10.170
4 5 6 134.114.64.3 134.114.64.3
4 5 6 172.16.10.170 134.114.64.3
4 5 6 172.16.10.170 172.16.10.170
4 5 6 172.16.10.170 134.114.64.3
4 5 6 172.16.10.170 172.16.10.170
弄了好久一直找不出原因在哪???? 请仁兄帮忙!!!!