{"id":18983225,"url":"https://github.com/matheusphalves/scapy4dummy","last_synced_at":"2026-06-20T04:03:41.724Z","repository":{"id":56710938,"uuid":"516198157","full_name":"matheusphalves/scapy4dummy","owner":"matheusphalves","description":"Network Operations using Scapy Framework","archived":false,"fork":false,"pushed_at":"2022-08-31T00:21:58.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-11T04:23:04.207Z","etag":null,"topics":["cybersecurity","network-analysis","scapy"],"latest_commit_sha":null,"homepage":"","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/matheusphalves.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}},"created_at":"2022-07-21T02:31:00.000Z","updated_at":"2022-07-30T14:26:28.000Z","dependencies_parsed_at":"2022-08-15T23:50:47.815Z","dependency_job_id":null,"html_url":"https://github.com/matheusphalves/scapy4dummy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/matheusphalves/scapy4dummy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusphalves%2Fscapy4dummy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusphalves%2Fscapy4dummy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusphalves%2Fscapy4dummy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusphalves%2Fscapy4dummy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusphalves","download_url":"https://codeload.github.com/matheusphalves/scapy4dummy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusphalves%2Fscapy4dummy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34556497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"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":["cybersecurity","network-analysis","scapy"],"created_at":"2024-11-08T16:16:20.117Z","updated_at":"2026-06-20T04:03:41.698Z","avatar_url":"https://github.com/matheusphalves.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scapy4dummy\n\n\nIt's never been so simple to use Scapy in cybersecurity purposes.\n\n# **Operations Available**\n\n- Arp scan\n- Port scan\n\n# **Dependency requirements** \n\n```\nscapy\n```\n\n# **Installing dependencies**\n\nPlease run the following commands\n```\npip install -r requirements.txt\n``` \n\n# **Getting started**\n\n## Instaling scapy4dummy locally\n\nAfter clone this repository, check the following examples\n\n\u003e Running a ARP scan\n\n```\nfrom scapy4dummy.operations.ArpScanner import ArpScanner\n\nscan_result = ArpScanner.send_arp_packet(target_ip='192.168.5.1/24', timeout=10)\nclients = ArpScanner.get_clients(arp_result=scan_result)\nprint(clients)\n```\n\nOutput example:\n\n```\n{\n\t    \"192.168.1.1/24\": {\n        \"clients\": [\n            {\n                \"ip_address\": \"192.168.1.1\",\n                \"mac_address\": \"ff:ff:ff:ff:ff:ff\"\n            },\n            {\n                \"ip_address\": \"192.168.1.102\",\n                \"mac_address\": \"ff:ff:ff:ff:ff:ff\"\n            }\n        ]\n    }\n}\n```\n\n\n\u003e Running a PORT scan\n\n```\nfrom scapy4dummy.operations.PortScanner import PortScanner\n\nip_target_list = ['192.168.5.1', 'www.google.com']\nport_list = [25, 80, 443, 8080]\nscan_result = PortScanner.start_full_scan(ip_target_list, port_list, timeout=10, verbose=False)\nprint(scan_result)\n```\n\nOutput example:\n```\n{\n    \"192.168.5.1\": {\n        \"tcp_scan\": [\n            {\n                \"dst_port\": 25,\n                \"status\": \"Closed\"\n            },\n            {\n                \"dst_port\": 80,\n                \"status\": \"Open\"\n            },\n            {\n                \"dst_port\": 443,\n                \"status\": \"Closed\"\n            },\n            {\n                \"dst_port\": 8080,\n                \"status\": \"Closed\"\n            }\n        ],\n        \"udp_scan\": [\n            {\n                \"dst_port\": 25,\n                \"status\": \"Closed\"\n            },\n            {\n                \"dst_port\": 80,\n                \"status\": \"Closed\"\n            },\n            {\n                \"dst_port\": 443,\n                \"status\": \"Closed\"\n            },\n            {\n                \"dst_port\": 8080,\n                \"status\": \"Closed\"\n            }\n        ]\n    },\n    \"www.google.com\": {\n        \"tcp_scan\": [\n            {\n                \"dst_port\": 25,\n                \"status\": \"Filtered\"\n            },\n            {\n                \"dst_port\": 80,\n                \"status\": \"Open\"\n            },\n            {\n                \"dst_port\": 443,\n                \"status\": \"Open\"\n            },\n            {\n                \"dst_port\": 8080,\n                \"status\": \"Filtered\"\n            }\n        ],\n        \"udp_scan\": [\n            {\n                \"dst_port\": 25,\n                \"status\": \"Open|Filtered\"\n            },\n            {\n                \"dst_port\": 80,\n                \"status\": \"Open|Filtered\"\n            },\n            {\n                \"dst_port\": 443,\n                \"status\": \"Open|Filtered\"\n            },\n            {\n                \"dst_port\": 8080,\n                \"status\": \"Open|Filtered\"\n            }\n        ]\n    }\n}\n```\n\n\n# **Project structure**\n\n```\nproject/\n\tscapy4dummy/\n\t\texceptions/\n            OperationErrorException.py\n        operations/\n\t\t\tArpScanner.py\n\t\t\tPorScanner.py\n          \n\trequirements.txt\n\t.gitignore\n    setup.py\n    LICENSE\n    README.md\n```\n\n# **Modules description**\n\n## **Operations**\n\n### **ArpScanner**\n\n```send_arp_packet```: Send a ARP request and returns all hosts responses.\n\n```get_clients```: Handle the host responses, getting their IP and MAC addresses.\n\n```start_scan```: Run a combined ARP request and retrives all clients.\n\n### **PortScanner**\n\n```tcp_scan```: Performs a TCP scan. Basically, send a SYN flag. \n\n```udp_scan```: Performs an UDP scan.\n\n```start_full_scan```: Run a combined TCP + UDP scan.\n\n\n## **Utils**\n\n### **FileHandler**\n\nClass is responsable for store all data obtained from scans. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusphalves%2Fscapy4dummy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusphalves%2Fscapy4dummy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusphalves%2Fscapy4dummy/lists"}