{"id":22140903,"url":"https://github.com/stealth/libusipp","last_synced_at":"2025-09-03T08:39:22.153Z","repository":{"id":2787562,"uuid":"3787402","full_name":"stealth/libusipp","owner":"stealth","description":"unix socket interface for C++ raw IP/IP6/UDP/TCP, Layer2 etc. framework","archived":false,"fork":false,"pushed_at":"2023-03-01T18:19:10.000Z","size":309,"stargazers_count":40,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-02T16:53:39.076Z","etag":null,"topics":["arp","icmp","ip","ipv4","ipv6","libpcap","pcap","raw-sockets","sockets","tcp","udp"],"latest_commit_sha":null,"homepage":"http://c-skills.blogspot.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stealth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-03-21T14:34:58.000Z","updated_at":"2024-10-16T02:21:36.000Z","dependencies_parsed_at":"2022-08-25T19:26:29.031Z","dependency_job_id":"edf5ecd0-c822-4d47-9138-54bdfc40d8b7","html_url":"https://github.com/stealth/libusipp","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/stealth/libusipp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stealth%2Flibusipp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stealth%2Flibusipp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stealth%2Flibusipp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stealth%2Flibusipp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stealth","download_url":"https://codeload.github.com/stealth/libusipp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stealth%2Flibusipp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273416196,"owners_count":25101806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arp","icmp","ip","ipv4","ipv6","libpcap","pcap","raw-sockets","sockets","tcp","udp"],"created_at":"2024-12-01T21:08:33.352Z","updated_at":"2025-09-03T08:39:22.116Z","avatar_url":"https://github.com/stealth.png","language":"C++","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9MVF8BRMX2CWA"],"categories":[],"sub_categories":[],"readme":"USI++ README\n============\n\n[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9MVF8BRMX2CWA)\n\n0. About\n--------\n\nusi++ (UNIX Socket Interface) is a low-level network-library for sending/receiving\nIP, IP6, ARP etc. packets directly on RAW or PACKET sockets. It can also be used for\nnetwork-monitoring and rapid development of pentesting tools. It requires `libpcap`\nand `libdnet` if you want the Layer2 DNET provider.\n\n\n1. License\n----------\n\nusi++ comes under the GPL. See file COPYING for more\ndetails.\n\nA data-file for ethernet-MAC's is included. It was taken from\narpwatch.\n\nSince USI++ is GPL there is ABSOLUTELY NO WARRANTY. YOU USE IT AT YOUR OWN RISK.\n\n2. Install\n----------\n\n\n    $ cd src\n    $ autoconf\n    $ ./configure\n    $ make\n    # make install\n\nPlease note, if you have multiple `libpcap` installs for testing, the generated `Makefile` is\njust a proposal. The configure script actually cannot know which include or lib path\nyou prefer. In such case, you have to edit the generated `Makefile` to point to it exactly,\nas well as setting/unsetting the defines you need in `config.h`.\n\nHaving more than one libpcap install is not uncommon, since various functions such\nas `pcap_set_immediate_mode()` or mmapped packet sockets just appeared recently.\n\n\n3. Compiling the examples\n-------------------------\n\nUsually like this:\n\n\n    # c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include\n\n\nIf you compiled usi++ with _dnet_ support, which allows you to also\nsend packets at the datalink layer (not just RAW sockets), you also need to\nlink against `-ldnet`. Newer _libpcap_ may already contain `pcap_inject()` so\nyou can also build usi++ without _libdnet_, as this function also\nprovides a portable way to send datalink frames.\n\n\n4. Function-description\n-----------------------\n\nPlease look at the HTML-documentation (generated via doxygen) of `libusi++` or at the samples.\n\n\n5. Supported Platforms\n----------------------\n\nLinux, BSD, OSX.\n\n\n6. BUGS/TODO\n------------\n\nNone.\n\n\n7. Background for Layer 2\n-------------------------\n\nThe linklevel handling has changed. Now all classes are derived from\nLayer2 {} which contains a RX and a TX object which are used for\nreceiving and transmitting data. The class-declarations can be found\nin the coresponding .h files. These classes are abstract, this means\nyou must derive your own to get it working. Look at the .h files\nwhich functions you must implemet. USI++ ships with the classes\n`Pcap`, `TX_IP`, `TX_eth_dnet` etc which let you capture/send packets. They give you\nbasic functionality so that you can use programs that work with USI++ 1.67 or\nlower as normal.\nBy making `RX` and `TX` abstract we make sure that `Layer2` can access\nroutines such as `sendpack()`. You are free to write your own RX/TX based\nclasses for different hardware (FDDI,...). You can change RX/TX behaivior at runtime,\nso it is as flexible as possible. For example you could detect that you are\nworking with PPP and then you load PPP transimitter.\nHave fun.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstealth%2Flibusipp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstealth%2Flibusipp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstealth%2Flibusipp/lists"}