阅读:1609回复:5
显示IP问题
想既显示源IP地址又显示目的IP地址
unsigned char proto; //8位协议 (1->ICMP, 2->IGMP, 6->TCP, 17->UDP) unsigned short checksum; //16位IP首部校验和 unsigned short H_sourceIP; //32位源IP地址 unsigned short L_sourceIP; unsigned short H_destIP; //32位目的IP地址 unsigned short L_destIP; }IP_PACKET, *P_IP_PACKET; P_IP_PACKET pkt = (P_IP_PACKET)pThis->psharememory; struct in_addr temp1,temp2; temp1.S_un.S_un_w.s_w1 = pkt->H_sourceIP; temp1.S_un.S_un_w.s_w2 = pkt->L_sourceIP; temp2.S_un.S_un_w.s_w1 = pkt->H_destIP; temp2.S_un.S_un_w.s_w2 = pkt->L_destIP; pThis->AddRow(inet_ntoa(temp1), \"TCP\",inet_ntoa(temp2), \"拦截\"); 但是inet_ntoa(temp2)和inet_ntoa(temp1)的IP地址一样,难道被覆盖了? 该怎么解决呢 |
|
沙发#
发布于:2005-06-03 13:27
先确认一下你的destip,sourceip确实不等。
inet_ntoa用的是内部的一个buff,确实可能后面的覆盖前面的, 你可以strcpy(buffer1,inet_ntoa(temp1)); strcpy(buffer2,inet_ntoa(temp2)); pThis->AddRow(inet_ntoa(temp1), \"TCP\",inet_ntoa(temp2), \"拦截\"); 肯定不会有被覆盖的可能性了。 |
|
板凳#
发布于:2005-06-03 22:43
谢斑竹大人:)
问题已经解决 不过指出你个笔误,是 pThis->AddRow(buffer1, \"TCP\",buffer2, \"拦截\"); |
|
地板#
发布于:2005-06-03 23:05
再问个问题:
我拦截UDP数据包(如我的IP是211.80.203.86) 拦截到如下数据包 源IP地址 目的IP地址 协议 211.80.205.103 211.80.203.86 UDP (发给我的数据包) 211.80.205.103 255.255.255.255 UDP (广播信息) 211.80.205.163 211.80.203.255 UDP (这个目的IP是?) 211.80.205.103 210.80.205.127 UDP (这个我怎么也拦截了?) 211.80.203.97 210.80.203.255 UDP |
|
地下室#
发布于:2005-06-04 08:47
啊,版面没弄好~~~~~~~~
再问个问题: 我拦截UDP数据包(如我的IP是211.80.203.86) 拦截到如下数据包 源IP地址 目的IP地址 协议 211.80.205.103 211.80.203.86 UDP (发给我的数据包) 211.80.205.103 255.255.255.255 UDP (广播信息) 211.80.205.163 211.80.203.255 UDP (这个目的IP是?) 211.80.205.103 210.80.205.127 UDP (这个我怎么也拦截了?) 211.80.203.97 210.80.203.255 UDP (包不是发给我的吧) |
|
5楼#
发布于:2005-06-04 09:28
啊,版面没弄好~~~~~~~~ 你是哪拦截的,如果是ndis hook或者imd,你可以看看以太网的目的地址,猜测可能和多播,组播有关 |
|