मल्टीप्लेटफ़ॉर्म C++ लाइब्रेरी जो उच्च-प्रदर्शन नेटवर्क पैकेट कैप्चर, पार्सिंग, क्राफ्टिंग और विश्लेषण के लिए है। यह libpcap, DPDK, AF_XDP, PF_RING को सपोर्ट करती है, और इसमें TCP पुनर्संयोजन, TLS फिंगरप्रिंटिंग और प्रोटोकॉल डिकोडिंग शामिल है।
<div align="center">
[](https://pcapplusplus.github.io)
[](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22Build+and+test%22)
[](https://github.com/seladb/PcapPlusPlus/actions?query=workflow%3A%22CodeQL%22)
[](https://app.codecov.io/github/seladb/PcapPlusPlus)
[](https://scorecard.dev/viewer/?uri=github.com/seladb/PcapPlusPlus)
[](https://github.com/seladb/PcapPlusPlus/graphs/contributors)
[](https://x.com/intent/follow?screen_name=seladb)
[]()
</div>
[PcapPlusPlus](https://pcapplusplus.github.io/) एक मल्टीप्लेटफ़ॉर्म C++ लाइब्रेरी है जो नेटवर्क पैकेट्स को कैप्चर करने, पार्स करने और बनाने के लिए उपयोग की जाती है। इसे कुशल, शक्तिशाली और उपयोग में आसान बनाया गया है।
PcapPlusPlus बड़ी विविधता वाले नेटवर्क प्रोटोकॉल्स के लिए डिकोडिंग और फ़ोर्जिंग क्षमताएँ प्रदान करता है। यह सबसे लोकप्रिय पैकेट प्रोसेसिंग इंजनों जैसे [libpcap](https://www.tcpdump.org/), [WinPcap](https://www.winpcap.org/), [Npcap](https://nmap.org/npcap/), [DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html), [WinDivert](https://reqrypt.org/windivert.html) और [PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/) के लिए उपयोग में आसान C++ रैपर भी प्रदान करता है।
अनुवाद: English · [正體中文](https://github.com/seladb/pcapplusplus/blob/master/translation/README-zh-tw.md) · [한국어](https://github.com/seladb/pcapplusplus/blob/master/translation/README-kor.md) · [日本語](https://github.com/seladb/pcapplusplus/blob/master/translation/README-ja.md) · [Русский](https://github.com/seladb/pcapplusplus/blob/master/translation/README-rus.md)
## विषय-सूची
- [विषय-सूची](#table-of-contents)
- [डाउनलोड](#download)
- [GitHub Release Page](#github-release-page)
- [Homebrew](#homebrew)
- [Vcpkg](#vcpkg)
- [Conan](#conan)
- [स्वयं बनाएँ](#build-it-yourself)
- [अपने पैकेज सत्यापित करें](#verify-your-packages)
- [फ़ीचर अवलोकन](#feature-overview)
- [शुरुआत करें](#getting-started)
- [API दस्तावेज़ीकरण](#api-documentation)
- [मल्टी प्लेटफ़ॉर्म समर्थन](#multi-platform-support)
- [समर्थित नेटवर्क प्रोटोकॉल](#supported-network-protocols)
- [डेटा लिंक लेयर (L2)](#data-link-layer-l2)
- [नेटवर्क लेयर (L3)](#network-layer-l3)
- [ट्रांसपोर्ट लेयर (L4)](#transport-layer-l4)
- [सेशन लेयर (L5)](#session-layer-l5)
- [प्रेज़ेंटेशन लेयर (L6)](#presentation-layer-l6)
- [एप्लिकेशन लेयर (L7)](#application-layer-l7)
- [DPDK और PF_RING समर्थन](#dpdk-and-pf_ring-support)
- [बेंचमार्क](#benchmarks)
- [प्रतिक्रिया दें](#provide-feedback)
- [योगदान](#contributing)
- [लाइसेंस](#license)
## डाउनलोड
आप GitHub release page से डाउनलोड करना, पैकेज मैनेजर का उपयोग करना या PcapPlusPlus को स्वयं बनाना चुन सकते हैं। अधिक जानकारी के लिए कृपया PcapPlusPlus वेब-साइट पर [Download](https://pcapplusplus.github.io/docs/install) पेज देखें।
[](https://tooomm.github.io/github-release-stats/?username=seladb&repository=PcapPlusPlus)
### GitHub Release Page
<https://github.com/seladb/PcapPlusPlus/releases/latest>
### Homebrew
```shell
brew install pcapplusplus
```
Homebrew formulae: <https://formulae.brew.sh/formula/pcapplusplus>
### Vcpkg
Windows:
```text
.\vcpkg install pcapplusplus
```
MacOS/Linux:
```text
vcpkg install pcapplusplus
```
Vcpkg port: <https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus>
### Conan
```text
conan install "pcapplusplus/[>0]@" -u
```
ConanCenter में पैकेज: <https://conan.io/center/pcapplusplus>
### स्वयं बनाएँ
git रिपॉज़िटरी क्लोन करें:
```shell
git clone https://github.com/seladb/PcapPlusPlus.git
```
PcapPlusPlus वेब-साइट पर [Build From Source](https://pcapplusplus.github.io/docs/install#build-from-source) पेज में अपने प्लेटफ़ॉर्म के अनुसार बिल्ड निर्देशों का पालन करें।
### अपने पैकेज सत्यापित करें
v23.09 से नए PcapPlusPlus रिलीज़ GitHub attestation के साथ हस्ताक्षरित हैं। सभी attestations [यहाँ](https://github.com/seladb/PcapPlusPlus/attestations) पाई जा सकती हैं। आप GitHub CLI के साथ इन पैकेजों की attestation सत्यापित कर सकते हैं। पैकेजों को सत्यापित करने के लिए आप [gh attestation verify](https://cli.github.com/manual/gh_attestation_verify) से नवीनतम निर्देशों का पालन कर सकते हैं। सरल निर्देशों के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
```shell
gh attestation verify <path-to-package-file> --repository seladb/PcapPlusPlus
```
और आपको अपने टर्मिनल में निम्नलिखित आउटपुट दिखाई देना चाहिए:
```shell
✓ Verification succeeded!
```
## फ़ीचर अवलोकन
- __पैकेट कैप्चर__ लोकप्रिय पैकेट कैप्चर इंजनों जैसे [libpcap](https://www.tcpdump.org/), [WinPcap](https://www.winpcap.org/), [Npcap](https://nmap.org/npcap/), [Intel DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html), [WinDivert](https://reqrypt.org/windivert.html), [ntop’s PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/) और [raw sockets](https://en.wikipedia.org/wiki/Network_socket#Raw_socket) के लिए उपयोग में आसान C++ रैपर के माध्यम से [[और जानें](https://pcapplusplus.github.io/docs/features#packet-capture)]
- __पैकेट पार्सिंग और क्राफ्टिंग__ जिसमें प्रोटोकॉल और लेयर का विस्तृत विश्लेषण, पैकेट जनरेशन और बड़ी विविधता वाले [नेटवर्क प्रोटोकॉल्स](https://pcapplusplus.github.io/docs/features#supported-network-protocols) के लिए पैकेट एडिट शामिल है [[और जानें](https://pcapplusplus.github.io/docs/features#packet-parsing-and-crafting)]
- __फ़ाइलों से/में पैकेट पढ़ें और लिखें__ दोनों __PCAP__ और __PCAPNG__ फ़ॉर्मेट में [[और जानें](https://pcapplusplus.github.io/docs/features#read-and-write-packets-fromto-files)]
- __लाइन रेट पर पैकेट प्रोसेसिंग__ [DPDK](https://www.dpdk.org/), [eBPF AF_XDP](https://www.kernel.org/doc/html/next/networking/af_xdp.html) और [PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/) के लिए कुशल और उपयोग में आसान C++ रैपर के माध्यम से [[और जानें](https://pcapplusplus.github.io/docs/features#dpdk-support)]
- __मल्टीप्लेटफ़ॉर्म समर्थन__ - PcapPlusPlus Linux, MacOS, Windows, Android और FreeBSD पर पूरी तरह समर्थित है
- __पैकेट रीअसेंबली__ - __TCP Reassembly__ का अनूठा कार्यान्वयन जिसमें TCP retransmission, out-of-order TCP packets और missing TCP data शामिल हैं, और IPv4 और IPv6 फ़्रैगमेंट बनाने और पुनः जोड़ने के लिए __IP Fragmentation and Defragmentation__ [[और जानें](https://pcapplusplus.github.io/docs/features#packet-reassembly)]
- __पैकेट फ़िल्टरिंग__ जो libpcap के BPF फ़िल्टर को बहुत अधिक उपयोगकर्ता-मैत्रीपूर्ण बनाती है [[और जानें](https://pcapplusplus.github.io/docs/features#packet-filtering)]
- __TLS Fingerprinting__ - [JA3 और JA3S](https://github.com/salesforce/ja3) TLS fingerprinting का C++ कार्यान्वयन [[और जानें](https://pcapplusplus.github.io/docs/features#tls-fingerprinting)]
## शुरुआत करें
PcapPlusPlus के साथ एप्लिकेशन लिखना बहुत आसान और सहज है। यहाँ एक सरल एप्लिकेशन है जो दिखाता है कि PCAP फ़ाइल से पैकेट कैसे पढ़ें और उसे पार्स कैसे करें:
```cpp
#include <iostream>
#include "IPv4Layer.h"
#include "Packet.h"
#include "PcapFileDevice.h"
int main(int argc, char* argv[])
{
// open a pcap file for reading
pcpp::PcapFileReaderDevice reader("1_packet.pcap");
if (!reader.open())
{
std::cerr << "Error opening the pcap file" << std::endl;
return 1;
}
// read the first (and only) packet from the file
pcpp::RawPacket rawPacket;
if (!reader.getNextPacket(rawPacket))
{
std::cerr << "Couldn't read the first packet in the file" << std::endl;
return 1;
}
// parse the raw packet into a parsed packet
pcpp::Packet parsedPacket(&rawPacket);
// verify the packet is IPv4
if (parsedPacket.isPacketOfType(pcpp::IPv4))
{
// extract source and dest IPs
pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address();
pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();
// print source and dest IPs
std::cout << "Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl;
}
// close the file
reader.close();
return 0;
}
```
आप PcapPlusPlus वेब-साइट पर [Getting Started](https://pcapplusplus.github.io/docs/quickstart) पेज में बहुत अधिक जानकारी पा सकते हैं। यह पेज आपको कुछ आसान चरणों के माध्यम से एक ऐप चालू और चालू करने में मार्गदर्शन करेगा।
## API दस्तावेज़ीकरण
PcapPlusPlus में 3 लाइब्रेरीज़ हैं:
1. __Packet++__ - नेटवर्क पैकेट्स को पार्स करने, बनाने और संपादित करने के लिए एक लाइब्रेरी
2. __Pcap++__ - पैकेट्स को इंटरसेप्ट और भेजने, नेटवर्क और NIC जानकारी, आँकड़े आदि प्रदान करने के लिए एक लाइब्रेरी। यह वास्तव में libpcap, WinPcap, Npcap, DPDK, AF_XDP, WinDivert और PF_RING जैसे पैकेट कैप्चरिंग इंजनों के लिए एक C++ रैपर है
3. __Common++__ - कुछ सामान्य कोड उपयोगिताओं वाली एक लाइब्रेरी जिसका उपयोग Packet++ और Pcap++ दोनों करते हैं
आप PcapPlusPlus वेब-साइट पर [API documentation section](https://pcapplusplus.github.io/docs/api) में विस्तृत API दस्तावेज़ीकरण पा सकते हैं।
यदि आपको कोई डेटा अनुपलब्ध दिखे तो कृपया [हमसे संपर्क करें](#provide-feedback)।
## मल्टी प्लेटफ़ॉर्म समर्थन
PcapPlusPlus वर्तमान में समर्थित है
__Windows__
<picture>
<img src="https://raw.githubusercontent.com/PcapPlusPlus/pcapplusplus.github.io/master/static/img/os-logos/logo-windows.png" alt="" width="16" height="16"/>
</picture>,
__Linux__
<picture>
<img src="https://raw.githubusercontent.com/PcapPlusPlus/pcapplusplus.github.io/master/static/img/os-logos/logo-linux.png" alt="" width="16" height="16"/>
</picture>,
__MacOS__
<picture><source media="(prefers-color-scheme: dark)" srcset="https://github.com/PcapPlusPlus/pcapplusplus.github.io/raw/master/static/img/os-logos/logo-apple-dark.png"/>
<img src="https://raw.githubusercontent.com/PcapPlusPlus/pcapplusplus.github.io/master/static/img/os-logos/logo-apple.png" alt="" width="16" height="16"/>
</picture>,
__Android__
<picture>
<img src="https://raw.githubusercontent.com/PcapPlusPlus/pcapplusplus.github.io/master/static/img/os-logos/logo-android.png" alt="" width="16" height="16"/>
</picture> और
__FreeBSD__
<picture>
<img src="https://raw.githubusercontent.com/PcapPlusPlus/pcapplusplus.github.io/master/static/img/os-logos/logo-freebsd.png" alt="" width="16" height="16"/>
</picture> पर।
कृपया सभी [समर्थित प्लेटफ़ॉर्म](https://pcapplusplus.github.io/docs/platforms) देखने के लिए PcapPlusPlus वेब-साइट पर जाएँ और अपने प्लेटफ़ॉर्म पर PcapPlusPlus का उपयोग शुरू करने के लिए [Download](#download) अनुभाग देखें।
## समर्थित नेटवर्क प्रोटोकॉल
PcapPlusPlus वर्तमान में निम्नलिखित प्रोटोकॉल्स के पैकेट्स को पार्स करने, संपादित करने और बनाने का समर्थन करता है:
### डेटा लिंक लेयर (L2)
1. Cisco HDLC
2. Ethernet II
3. IEEE 802.3 Ethernet
4. LLC (केवल BPDU समर्थित)
5. Null/Loopback
6. Packet trailer (उर्फ footer या padding)
7. PPPoE
8. SLL (Linux cooked capture)
9. SLL2 (Linux cooked capture v2)
10. STP
11. VLAN
12. VXLAN
13. Wake on LAN (WoL)
14. NFLOG (Linux Netfilter NFLOG) - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
### नेटवर्क लेयर (L3)
15. ARP
16. GRE
17. ICMP
18. ICMPv6
19. IGMP (IGMPv1, IGMPv2 और IGMPv3 समर्थित हैं)
20. IPv4
21. IPv6
22. MPLS
23. NDP
24. Raw IP (IPv4 और IPv6)
25. VRRP (IPv4 और IPv6)
26. WireGuard
### ट्रांसपोर्ट लेयर (L4)
27. COTP
28. GTP (v1 और v2)
29. IPSec AH और ESP - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
30. QUIC v1 - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
31. TCP
32. TPKT
33. UDP
### सेशन लेयर (L5)
34. SDP
35. SIP
### प्रेज़ेंटेशन लेयर (L6)
36. SSL/TLS - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
### एप्लिकेशन लेयर (L7)
37. ASN.1 डिकोडर और एनकोडर
38. BGP (v4)
38. क्रिप्टोग्राफ़िक key डिकोडर
40. DHCP
41. DHCPv6
42. DNS
43. DoIP
44. FTP
45. GVCP
46. HTTP हेडर (request और response)
47. LDAP
48. Modbus
49. MySQL - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
50. NTP (v3, v4)
51. PEM डिकोडर और एनकोडर
52. PostgreSQL Wire Protocol (PGWire) - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
53. Radius
54. S7 Communication (S7comm)
55. SMTP
56. SOME/IP
57. SSH - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
58. Telnet - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
59. X509 प्रमाणपत्र - केवल पार्सिंग (संपादन क्षमताएँ नहीं)
60. Generic payload
## DPDK और PF_RING समर्थन
[The Data Plane Development Kit (DPDK)](https://www.dpdk.org/) तेज़ पैकेट प्रोसेसिंग के लिए डेटा प्लेन लाइब्रेरीज़ और नेटवर्क इंटरफ़ेस कंट्रोलर ड्राइवर्स का एक सेट है।
[PF_RING™](https://www.ntop.org/products/packet-capture/pf_ring/) एक नए प्रकार का नेटवर्क सॉकेट है जो पैकेट कैप्चर गति को नाटकीय रूप से बेहतर बनाता है।
दोनों फ़्रेमवर्क बहुत तेज़ पैकेट प्रोसेसिंग (लाइन स्पीड तक) प्रदान करते हैं और कई नेटवर्क एप्लिकेशनों जैसे राउटर, फ़ायरवॉल, लोड बैलेंसर आदि में उपयोग किए जाते हैं।
PcapPlusPLus DPDK और PF_RING पर एक C++ एब्स्ट्रैक्शन लेयर प्रदान करता है। यह एब्स्ट्रैक्शन लेयर एक उपयोग में आसान इंटरफ़ेस प्रदान करती है जो इन फ़्रेमवर्क्स का उपयोग करने में शामिल बहुत सारे बॉयलरप्लेट को हटा देती है। आप PcapPlusPlus वेब-साइट पर [DPDK](https://pcapplusplus.github.io/docs/dpdk) और [PF_RING](https://pcapplusplus.github.io/docs/features#pf_ring-support) समर्थन पेजों पर जाकर और जान सकते हैं।
## बेंचमार्क
हमने PcapPlusPlus के प्रदर्शन की अन्य समान C++ लाइब्रेरीज़ (जैसे `libtins` और `libcrafter`) से तुलना करने के लिए Matias Fontanini के [packet-capture-benchmarks](https://github.com/mfontanini/packet-capture-benchmarks) प्रोजेक्ट का उपयोग किया।
आप PcapPlusPlus वेब-साइट पर [Benchmarks](https://pcapplusplus.github.io/docs/benchmark) पेज में परिणाम देख सकते हैं।
## प्रतिक्रिया दें
हमें प्रतिक्रिया पाकर बहुत खुशी होगी, कृपया निम्नलिखित में से किसी भी तरीके से हमसे संपर्क करने में संकोच न करें:
- GitHub ticket खोलें
- PcapPlusPlus Google group में संदेश पोस्ट करें: <https://groups.google.com/d/forum/pcapplusplus-support>
- Stack Overflow पर प्रश्न पूछें: <https://stackoverflow.com/questions/tagged/pcapplusplus>
- ईमेल भेजें: <[email protected]>
- X पर हमें फ़ॉलो करें: <https://x.com/seladb>
यदि आपको यह प्रोजेक्ट पसंद है तो कृपया __GitHub पर हमें Star करें — यह मदद करता है!__ :star: :star:
अधिक जानने के लिए कृपया [PcapPlusPlus web-site](https://pcapplusplus.github.io/community) पर जाएँ।
## योगदान
हम इस प्रोजेक्ट में किसी भी योगदान की बहुत सराहना करेंगे। यदि आप योगदान देने में रुचि रखते हैं तो कृपया PcapPlusPlus वेब-साइट पर [contribution page](https://pcapplusplus.github.io/community#contribute) पर जाएँ।
## लाइसेंस
PcapPlusPlus [Unlicense license](https://choosealicense.com/licenses/unlicense/) के अंतर्गत जारी किया गया है।
[](https://choosealicense.com/licenses/unlicense/)