目录
原型
int pcap_sendpacket(pcap_t *, const u_char *, int);
参数
pcap_t *,//适配器
const u_char *, //发送缓冲器
int//发送长度
使用
unsigned char packet[100];
//目的MAC
packet[0] = 0x01;
packet[1] = 0x01;
packet[2] = 0x01;
packet[3] = 0x01;
packet[4] = 0x01;
packet[5] = 0x01;
//源MAC
packet[6] = 0x02;
packet[7] = 0x02;
packet[8] = 0x02;
packet[9] = 0x02;
packet[10] = 0x02;
packet[11] = 0x02;
for (int i = 12; i < 100; i++)
{
packet[i] = i;
}
pcap_sendpacket(fp, packet, 100);
注意:发送数据的缓冲区,将会按照缓冲区内存进发送,所以在发送的时候主要要满足正确的协议头。比如,IPV6为86DD,所以如上packet[12]=0x86,packet[13]=0xDD,接下来就是IPV6的协议头40字节。
完整代码见