当前位置: 技术问答>linux和unix
用libnet构造数据包,为什么对方wireshark抓不到?
来源: 互联网 发布时间:2016-11-28
本文导语: 本帖最后由 lovejoyy 于 2011-03-30 17:02:43 编辑 我用libnet构造一个UDP数据包发给指定的IP,双方同时打开wireshark,我主机上的wireshark能抓到我发出去的每一个UDP数据包,但是对方的wireshark没有反映,哪位大大能指点一下可...
我的主机IP:10.20.133.139 对方IP:10.20.133.198
双方都是LINUX系统
//gcc -o just just.c -lnet
#include
#include
void main()
{
libnet_t *net;
int packet_size;
char *device=NULL;
char *destination_ip_str="10.20.133.198";
char *source_ip_str="10.20.133.139";
u_char hardware_source[6]={0x00,0x23,0x8B,0xC4,0x6F,0x7C};
u_char hardware_destination[6]={0x00,0x26,0xC6,0x5F,0x7F,0xF0};
u_long destination_ip;
u_long source_ip;
char error_information[LIBNET_ERRBUF_SIZE];
libnet_ptag_t ip_protocol_tag=0;
libnet_ptag_t ethernet_protocol_tag=0;
u_short protocol=IPPROTO_UDP;
u_char payload[255] = "";
u_long payload_size =0;
destination_ip=libnet_name2addr4(net,destination_ip_str,LIBNET_RESOLVE);
source_ip=libnet_name2addr4(net,source_ip_str,LIBNET_RESOLVE);
net=libnet_init(LIBNET_LINK,device,error_information);
strcpy(payload,"test");
payload_size=strlen(payload);
ip_protocol_tag=libnet_build_ipv4(LIBNET_IPV4_H+payload_size,
0,242,0,64,protocol,0,source_ip,
destination_ip,payload,payload_size,net,0);
ethernet_protocol_tag=libnet_build_ethernet(hardware_destination,
hardware_source,ETHERTYPE_IP,payload,0,net,0);
packet_size=libnet_write(net);
printf("send a %d length IP ACK packetn",packet_size);
libnet_destroy(net);
}
执行结果:
本机wireshark抓到的包:
数据包详情:
谢谢拉~
|
相互能ping通吗?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。