libpcap c语言,c语言指定网口转发数据包---使用libpcap包

sendPkt.c

#include

#include

int main(int argc, char **argv)

{

system("clear");

pcap_t *fp;

char errbuf[PCAP_ERRBUF_SIZE];

pcap_t *descr= pcap_open_offline("/home/IPS/test.pcap",errbuf);

const u_char * packet;

struct pcap_pkthdr hdr;

packet = pcap_next(descr, &hdr);

//printf("packet: %s\n",packet);

fflush(stdout);

/* Open the output device */

if ( (fp= pcap_open_live("eth3", 100, 1,1000,errbuf ) ) == NULL)

{

fprintf(stderr,"\nUnable to open the adapter. %s is not supported \n", "eth3");

return 0;

}

printf("open the output device success!\n");

getchar();

while (packet)

{

unsigned packetSize= hdr.len;

printf("packeSize is :%d\n",packetSize);

unsigned i=0;

/*

for (i=0; i< packetSize;i++)

{

//printf("now i is %d\n",i);

//sleep(2);

}

*/

//pcap_sendpacket(sp->handle.pcap, data, (int)len);

pcap_sendpacket(fp, packet, packetSize);

packet = pcap_next(descr, &hdr);

printf("send packet over!:%s \n",descr);

}

pcap_close(descr);

return 0;

}

编译命令:gcc -o sendpkt sendPkt.c -lpcap

实际测试,拿wireshark 抓包比对结果正确

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值