WinPcap编程(三)】的更多相关文章

0. 这一次具体讲抓包的两种方法. (建议)清除ARP表,最好自己写个批处理命令.快一点. 1.0 抓包步骤 步骤很简单:先打开适配器列表 --> 选择适配器 --> 通过遍历链表的方式到达你选择的适配器位置 --> 打开设备 --> 开始抓包. 每一个步骤都是一个函数.了解步骤,后面就好办. 首先,了解一个数据类型pcap/pcap_t.它代表一个打开的设备,理解成它就是适配器就行(实际上是这个适配器的描述符).这个结构体对用户来说是不透明的,它通过wpcap.dll提供的函数,…
转自:http://www.cnblogs.com/blacksword/archive/2012/03/19/2406098.html WinPcap可能对大多数人都很陌生,我在这里就先简单介绍一下它是什么吧~~这里我们先看一下来自维基百科中对于pcap的解释吧! In the field of computernetwork administration, pcap (packet capture) consists of an application programming interfa…
Linux网络编程(三) wait()还是waitpid() Linux网络编程(二)存在客户端断开连接后,服务器端存在大量僵尸进程.这是由于服务器子进程终止后,发送SIGCHLD信号给父进程,而父进程默认忽略了该信号.为避免僵尸进程的产生,无论我们什么时候创建子进程时,主进程都需要等待子进程返回,以便对子进程进行清理.为此,我们在服务器程序中添加SIGCHLD信号处理函数. 代码如下: #include <stdlib.h> #include <stdio.h> #include…
  并发编程 并发程序要正确地执行,必须要保证其具备原子性.可见性以及有序性:只要有一个没有被保证,就有可能会导致程序运行不正确  线程不安全在编译.测试甚至上线使用时,并不一定能发现,因为受到当时的CPU调度顺序,线程个数.指令重排的影响,偶然触发   线程安全的定义 比如说一个类,不论通过怎样的调度执行顺序,并且调用处不用对其进行同步操作,其都能表现出正确的行为,则这个类就是线程安全的     并发编程三个概念 原子性: 一个操作或多个操作要么全部执行且执行过程不被中断,要么不执行 可见性:…
1.过滤器设置 设置过滤器,得到你想要的哪种类型的包.Like WireShark. 过程:编译过滤器,然后设置过滤器.直接上参考文档的代码: if (d->addresses != NULL) /* 获取接口第一个地址的掩码 */ netmask=((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr; else /* 如果这个接口没有地址,那么我们假设这个接口在C类网络中 */ netmask=…
显示适配器详细信息 先贴上代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "pcap.h" #include <winsock2.h> typedef struct sockaddr_in sockad; /* 从tcptraceroute数字IP地址转换为字符串 */ #define IPTOSBUFFERS 12 char *iptos(u_…
为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能.而System.Collections和System.Collections.Generic命名空间中所提供的经典列表,集合和数组都不是线程安全的,如果要使用,还需要添加代码来同步. 先看一个例子,通过并行循环向一个List<string>集合添加元素.因为List不是线程安全的,所以必须对Add方法加锁来串行化. 任务开始: ; static void Main(string[] args)…
0. 按着文档顺序写的. 开发环境:win10+VS2013. 配置WinPcap环境就不多说.直接给网址:http://blog.sina.com.cn/s/blog_57432f380101qh3n.html 内容大多是函数解释+碰到的问题的解决方案.学习&&警示. 1.获取适配器列表 获取适配器的目的是:获取本机有哪些适配器,便于之后选择用哪个适配器抓包. 首先,先了解一个数据类型pcap_if/pcap_if_t,这是一个链表结构,用来存储本机的所有适配器. struct pcap…
计算机网络课设要求用WinPcap写对ARP包的接收与发送. 所以学了一下WinPcap的内容. 参考的博客: http://blog.csdn.net/htttw/article/details/7521053 http://www.cnblogs.com/yingfang18/archive/2010/11/27/1889596.html http://www.cnblogs.com/wangshuo/archive/2011/07/23/2114680.html [表示感谢] 参考文档地址…
这一次要分析的实例程序跟上一讲非常类似(“打开适配器并捕获数据包”),略微不同的一点是本次将pcap_loop()函数替换成了pcap_next_ex()函数.本节的重点也就是说一下这两个函数之间的差异.我们知道pcap_loop()函数是基于回调的原理来进行数据捕获的,如技术文档所说,这是一种精妙的方法,并且在某些场合下,它是一种很好的选择.但是在处理回调有时候会并不实用,它会增加程序的复杂度,特别是在多线程的C++程序中.而对于pcap_next_ex()函数而言,可以通过直接调用它来获得一…