| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

C++ 网络抓包和操作库:libtins

libtins 是一个高级支持多平台的 C++ 网络抓包和操作库。开发者可以利用 libtins 在应用实现对网络数据包的分析和操作。它的主要目的是提供C++开发​​一个简单,高效,平台和字节序无关的方式来创建一个需要发送,接收和处理网络数据包的工具。

它易于使用

该库是非常简单易用。作为一个简单的例子,这是怎么回事,可以用来打印在eth0接口捕捉每一个TCP数据包的源地址和目的地址和端口:

#include <iostream>  #include <tins/tins.h>    using namespace Tins;    bool handler(const PDU &pdu) {      const IP &ip = pdu.rfind_pdu<IP>(); // Find the IP layer      const TCP &tcp = pdu.rfind_pdu<TCP>(); // Find the TCP layer      std::cout << ip.src_addr() << ':' << tcp.sport() << " -> "                 << ip.dst_addr() << ':' << tcp.dport() << std::endl;      return true;  }    int main() {      Sniffer("eth0").sniff_loop(handler);  }

特性

libtins 支持多种协议和特性:

  • Network packet crafting.
  • Packet sniffing and automatic interpretation packets.
  • Reading and writing PCAP files.
  • Following and reassembling TCP streams on the fly.
  • Decrypting WEP and WPA2(TKIP and CCMP) encrypted 802.11 data frames on the fly and interpreting the decrypted content.
  • Supported protocols:
    • IEEE 802.11
    • IEEE 802.3
    • IEEE 802.1q
    • Ethernet II
    • ARP
    • IP
    • IPv6
    • ICMP
    • ICMPv6
    • TCP
    • UDP
    • DHCP
    • DHCPv6
    • DNS
    • RadioTap
    • EAPOL
    • PPPoE
    • STP
    • LLC
    • LLC+SNAP
    • Linux Crooked Capture
    • PPI
    • NULL/Loopback

项目主页:http://www.open-open.com/lib/view/home/1407554328317

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1407554328317.html
libtins 网络工具包