{"id":19142026,"url":"https://github.com/supercowpowers/chains","last_synced_at":"2025-05-06T23:45:16.997Z","repository":{"id":29553771,"uuid":"33092960","full_name":"SuperCowPowers/chains","owner":"SuperCowPowers","description":"Python Chained Generators for Network Streams:","archived":false,"fork":false,"pushed_at":"2020-12-21T16:51:21.000Z","size":187,"stargazers_count":40,"open_issues_count":7,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-19T16:11:30.011Z","etag":null,"topics":["networking","packets","python"],"latest_commit_sha":null,"homepage":"http://chains.readthedocs.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SuperCowPowers.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-29T22:56:36.000Z","updated_at":"2024-07-30T13:12:30.000Z","dependencies_parsed_at":"2022-08-22T06:50:48.174Z","dependency_job_id":null,"html_url":"https://github.com/SuperCowPowers/chains","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperCowPowers%2Fchains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperCowPowers%2Fchains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperCowPowers%2Fchains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuperCowPowers%2Fchains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuperCowPowers","download_url":"https://codeload.github.com/SuperCowPowers/chains/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252788404,"owners_count":21804280,"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","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":["networking","packets","python"],"created_at":"2024-11-09T07:25:37.282Z","updated_at":"2025-05-06T23:45:16.981Z","avatar_url":"https://github.com/SuperCowPowers.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Chains\n======\n\n**Python Chained Generators for Network Packets:** `Read the\nDocs \u003chttp://chains.rtfd.org\u003e`__\n\n\n|travis| |Coverage Status| |landscape| |version| \n|wheel| |supported-versions| |supported-implementations| |license|\n\nInstall/Run Stuff\n-----------------\nWant to see what's happening on your network right now? Just install chains and run 'netwatch'.\n::\n\n    $ pip install chains\n    $ netwatch -s\n    2015-09-07 19:08:34 - UDP IP 192.168.1.9(internal)--\u003e 224.0.0.251(multicast_dns)\n    2015-09-07 19:08:34 - UDP IP6 fe80::6e40:8ff:fe89:fc08(internal) --\u003e ff02::fb(multicast_dns)\n    2015-09-07 19:08:34 - UDP IP 192.168.1.14(internal)--\u003e 224.0.0.251(multicast_dns)\n    2015-09-07 19:08:34 - UDP IP6 fe80::8a0:4946:3c8a:e6a1(internal)--\u003e ff02::fb(multicast_dns)\n    2015-09-07 19:08:34 - TCP IP 192.168.1.9(internal)--\u003e 49.75.183.151(nxdomain)\n    2015-09-07 19:08:36 - TCP IP 192.168.1.9(internal)--\u003e 54.164.252.174(compute-1.amazonaws.com)\n    2015-09-07 19:08:36 - UDP IP 192.168.1.1(internal)--\u003e 192.168.1.9(internal)\n    2015-09-07 19:08:36 - TCP IP 54.164.252.174(compute-1.amazonaws.com)--\u003e 192.168.1.9(internal)\n    ...\n\nWant to go to coffee shop and see http(s) requests floating about?\n::\n\n   $ urlwatch\n\n   HTTP_REQUEST\n   192.168.1.9 --\u003e Host: clc.stackoverflow.com\n   URI: /j/p.js?d=hireme\u0026ac=891012\u0026tags=python;attributes\u0026lw=5913\u0026bw=1539\n   Referer: http://stackoverflow.com/questions/610883/attribute-in-python\n   Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36\n\n   HTTP_REQUEST\n   192.168.1.9 --\u003e Host: ajax.googleapis.com\n   URI: /ajax/libs/jquery/1.7.1/jquery.min.js\n   Referer: http://stackoverflow.com/questions/610883/attribute-in-python\n   Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36\n\n   HTTPS_REQUEST\n   192.168.1.9 --\u003e 199.166.0.200(sc.iasds01.com) tls_records(5)\n   TLSRecord(length=512, version=769, type=22, data='\\x01\\x00\\x01\\xfc\\x03\\x03K\\t\\xf8_\\x8...\n   TLSRecord(length=262, version=771, type=22, data='\\x10\\x00\\x01\\x02\\x01\\x00Vfd\\x8f8a\\x...\n   TLSRecord(length=1, version=771, type=20, data='\\x01')\n   TLSRecord(length=64, version=771, type=22, data=\"l\\xd0\\xce\\x96\\xf5\\x1a\\xf8\\xcf\\xcc\\x1...\n   TLSRecord(length=560, version=771, type=23, data='\\x1d\\x942K\\xfb\\x87\\x19v\\xba\\x13\\x14...\n\nDocumentation\n-------------\n\n`chains.readthedocs.org \u003chttps://chains.readthedocs.org/\u003e`__\n\nAbout\n-----\n\nThe Chains project is an exploration of python components that you\n'chain' together to process streaming network packets. The use of\nnative python generators means the code is extremely lightweight and\nefficient.\n\nExample\n-------\n\n::\n\n    # Create the classes\n    streamer = packet_streamer.PacketStreamer(iface_name=data_path, max_packets=50)\n    meta = packet_meta.PacketMeta()\n    rdns = reverse_dns.ReverseDNS()\n    printer = packet_printer.PacketPrinter()\n\n    # Set up the chain\n    meta.link(streamer)\n    rdns.link(meta)\n    printer.link(rdns)\n\n    # Pull the chain\n    printer.pull()\n\nExample Output\n~~~~~~~~~~~~~~\n\n::\n\n    Timestamp: 2015-05-27 01:17:07.919743\n    Ethernet Frame: 6c:40:08:89:fc:08 --\u003e 01:00:5e:00:00:fb  (type: 2048)\n    Packet: IP 192.168.1.9 --\u003e 224.0.0.251 (len:55 ttl:255) -- Frag(df:0 mf:0 offset:0)\n    Domains: LOCAL --\u003e multicast_dns\n    Transport: UDP {'dport': 5353, 'sum': 59346, 'sport': 5353, 'data': '...', 'ulen': 35}\n    Application: None\n\n    Timestamp: 2015-05-27 01:17:07.919926\n    Ethernet Frame: 6c:40:08:89:fc:08 --\u003e 33:33:00:00:00:fb  (type: 34525)\n    Packet: IP6 fe80::6e40:8ff:fe89:fc08 --\u003e ff02::fb (len:35 ttl:255)\n    Domains: LOCAL --\u003e multicast_dns\n    Transport: UDP {'dport': 5353, 'sum': 6703, 'sport': 5353, 'data': '...', 'ulen': 35}\n    Application: None\n    ...\n\nLICENSE\n-------\n\nMIT Licensed\n\n.. |travis| image:: https://img.shields.io/travis/SuperCowPowers/chains.svg\n   :target: https://travis-ci.org/SuperCowPowers/chains\n.. |Coverage Status| image:: https://coveralls.io/repos/SuperCowPowers/chains/badge.svg?branch=HEAD\n   :target: https://coveralls.io/r/SuperCowPowers/chains\n.. |landscape| image:: https://landscape.io/github/SuperCowPowers/chains/master/landscape.svg?style=flat\n   :target: https://landscape.io/github/SuperCowPowers/chains/master\n.. |version| image:: https://img.shields.io/pypi/v/chains.svg\n   :target: https://pypi.python.org/pypi/chains\n.. |downloads| image:: https://img.shields.io/pypi/dm/chains.svg\n   :target: https://pypi.python.org/pypi/chains\n.. |wheel| image:: https://img.shields.io/pypi/wheel/chains.svg\n   :target: https://pypi.python.org/pypi/chains\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/chains.svg\n   :target: https://pypi.python.org/pypi/chains\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/chains.svg\n   :target: https://pypi.python.org/pypi/chains\n.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg\n   :target: http://choosealicense.com/licenses/mit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercowpowers%2Fchains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupercowpowers%2Fchains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercowpowers%2Fchains/lists"}