利用C# 开发的网络数据包抓取的的实现
利用套接字Socket socket=new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
SocketType,Raw
// 摘要:
// 支持对基础传输协议的访问。Using the System.Net.Sockets.SocketTypeSystem.Net.Sockets.SocketType.Raw,
// you can communicate using protocols like Internet Control Message Protocol
// (System.Net.Sockets.ProtocolType.Icmp) and Internet Group Management Protocol
// (System.Net.Sockets.ProtocolType.Igmp).在发送时,您的应用程序必须提供完整的 IP 标头。所接收的数据报在返回时会保持其
// IP 标头和选项不变。
绑定终结点Bind函数实现
socket.Blocking = false;
socket.Bind(new IPEndPoint(ipaddress, 0));//要监听的IP地址、
//开始异步监听网络数据包
socket.BeginReceive(receive_buf_bytes, 0, len_receive_buf, SocketFlags.None, new AsyncCallback(CallBack), stat);
下图是本人开发的工具界面
需要下载的可联系 565276055@qq.com