summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c')
-rw-r--r--3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c b/3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c
new file mode 100644
index 00000000000..7c68c9105e7
--- /dev/null
+++ b/3rdparty/winpcap/Examples-pcap/sendpack/sendpack.c
@@ -0,0 +1,68 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <pcap.h>
+
+
+int main(int argc, char **argv)
+{
+ pcap_t *fp;
+ char errbuf[PCAP_ERRBUF_SIZE];
+ u_char packet[100];
+ int i;
+
+ /* Check the validity of the command line */
+ if (argc != 2)
+ {
+ printf("usage: %s interface", argv[0]);
+ return 1;
+ }
+
+ /* Open the adapter */
+ if ((fp = pcap_open_live(argv[1], // name of the device
+ 65536, // portion of the packet to capture. It doesn't matter in this case
+ 1, // promiscuous mode (nonzero means promiscuous)
+ 1000, // read timeout
+ errbuf // error buffer
+ )) == NULL)
+ {
+ fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", argv[1]);
+ return 2;
+ }
+
+ /* Supposing to be on ethernet, set mac destination to 1:1:1:1:1:1 */
+ packet[0]=1;
+ packet[1]=1;
+ packet[2]=1;
+ packet[3]=1;
+ packet[4]=1;
+ packet[5]=1;
+
+ /* set mac source to 2:2:2:2:2:2 */
+ packet[6]=2;
+ packet[7]=2;
+ packet[8]=2;
+ packet[9]=2;
+ packet[10]=2;
+ packet[11]=2;
+
+ /* Fill the rest of the packet */
+ for(i=12;i<100;i++)
+ {
+ packet[i]= (u_char)i;
+ }
+
+ /* Send down the packet */
+ if (pcap_sendpacket(fp, // Adapter
+ packet, // buffer with the packet
+ 100 // size
+ ) != 0)
+ {
+ fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp));
+ return 3;
+ }
+
+ pcap_close(fp);
+ return 0;
+}
+