{"id":33922450,"url":"https://github.com/tldr-it-stepankutaj/network-scanner","last_synced_at":"2026-05-26T20:01:56.344Z","repository":{"id":288395509,"uuid":"967880014","full_name":"tldr-it-stepankutaj/network-scanner","owner":"tldr-it-stepankutaj","description":"High-performance cross-platform ICMP/TCP network sweep scanner written in C++ Supports full CIDR range input, ICMP ping, TCP fallback, RTT-based color output, and multithreading. Ideal for sysadmins, security pros, and network engineers.","archived":false,"fork":false,"pushed_at":"2026-04-02T00:19:07.000Z","size":107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-02T08:05:23.472Z","etag":null,"topics":["cpp","ethical-hacking","ethical-hacking-tools","icmp","linux","macos","network","network-analysis","osint","osint-tool","scanner","tools"],"latest_commit_sha":null,"homepage":"https://www.tldr-it.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tldr-it-stepankutaj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-17T06:32:28.000Z","updated_at":"2026-04-02T00:19:13.000Z","dependencies_parsed_at":"2025-04-21T05:32:21.785Z","dependency_job_id":null,"html_url":"https://github.com/tldr-it-stepankutaj/network-scanner","commit_stats":null,"previous_names":["tldr-it-stepankutaj/network-scanner"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/tldr-it-stepankutaj/network-scanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tldr-it-stepankutaj%2Fnetwork-scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tldr-it-stepankutaj%2Fnetwork-scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tldr-it-stepankutaj%2Fnetwork-scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tldr-it-stepankutaj%2Fnetwork-scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tldr-it-stepankutaj","download_url":"https://codeload.github.com/tldr-it-stepankutaj/network-scanner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tldr-it-stepankutaj%2Fnetwork-scanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33536659,"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":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cpp","ethical-hacking","ethical-hacking-tools","icmp","linux","macos","network","network-analysis","osint","osint-tool","scanner","tools"],"created_at":"2025-12-12T09:02:51.240Z","updated_at":"2026-05-26T20:01:56.286Z","avatar_url":"https://github.com/tldr-it-stepankutaj.png","language":"C++","funding_links":["https://buymeacoffee.com/stepankutae"],"categories":[],"sub_categories":[],"readme":"# network-scanner\n\n![GitHub Release](https://img.shields.io/github/v/release/tldr-it-stepankutaj/network-scanner)\n![CI](https://github.com/tldr-it-stepankutaj/network-scanner/actions/workflows/build.yml/badge.svg)\n\n`network-scanner` is a blazing-fast network sweep tool written in C++ that supports ICMP (ping), TCP port probing, and fallback modes. It efficiently scans entire IP ranges and provides color-coded RTT output, ideal for sysadmins, red teamers, or infrastructure testers.\n\n## Features\n\n- ICMP scan (raw socket ping)\n- TCP fallback (e.g., scan port 22/80/443 if ICMP is blocked)\n- RTT-based color output\n- Multithreaded (customizable thread count)\n- Cross-platform: Linux \u0026 macOS (including ARM64)\n- JSON output for scripting and automation\n- Configurable probe timeout\n- MAC vendor identification (via nmap-mac-prefixes database)\n- Graceful Ctrl+C handling with partial results\n- Automatic subnet detection (supports any CIDR prefix, not just /24)\n- Verbose and debug logging modes\n- Scan statistics (duration, host count, discovery rate)\n- Shell completion for Bash and Zsh\n- Man page documentation\n- Unit tests via Google Test\n\n## Usage\n\n```bash\nnetwork-scanner [options]\n```\n\n### Options\n\n| Option | Description |\n|--------|-------------|\n| `--threads N` | Number of threads (default: CPU cores) |\n| `--mode MODE` | Scan mode: `icmp`, `tcp`, or `fallback` (default: `fallback`) |\n| `--port PORT` | Port for TCP scanning (default: 80) |\n| `--timeout MS` | Probe timeout in milliseconds (default: 1000) |\n| `--thorough` | Thorough scan mode (higher accuracy, slower) |\n| `--json` | Output results as JSON (non-interactive) |\n| `--no-color` | Disable colored output (also respects `NO_COLOR` env) |\n| `--verbose` | Show informational messages on stderr |\n| `--debug` | Show debug messages on stderr |\n| `--show-all` | Show all hosts including unconfirmed ones |\n| `--skip-scan` | Skip network scanning |\n| `--no-banner` | Disable ASCII art banner |\n| `--no-clear` | Don't clear the screen at start |\n| `--help` | Display help message |\n| `--version` | Display version information |\n\n### Examples\n\n```bash\n# Interactive scan with defaults\nnetwork-scanner\n\n# TCP scan on port 443 with 64 threads\nnetwork-scanner --mode tcp --port 443 --threads 64\n\n# JSON output for scripting\nnetwork-scanner --json --no-color | jq .\n\n# Thorough scan with longer timeout\nnetwork-scanner --thorough --timeout 3000\n\n# Debug mode to see what's happening\nnetwork-scanner --debug --no-banner --no-clear\n```\n\n### Shell Completion\n\nThe tool comes with shell completion support for both Bash and Zsh. After installation, shell completion will automatically be available for:\n\n- Command options (`--threads`, `--mode`, `--port`, `--timeout`, `--json`, etc.)\n- Mode values (`icmp`, `tcp`, `fallback`)\n\n```bash\n# View man page\nman network-scanner\n\n# View command help\nnetwork-scanner --help\n```\n\n## Dependencies\n\n### Runtime Dependencies\n- libcurl\n- libstdc++ (C++ Standard Library) — statically linked in release binaries\n\n### Optional Dependencies\n- `fping` - used in fallback mode if raw sockets aren't available (install with `apt`, `yum`, or `brew`)\n- `nmap-mac-prefixes` - MAC vendor database at `/usr/share/nmap/nmap-mac-prefixes` for device vendor identification\n\n## Compatibility\n\n### Tested Operating Systems\n- Ubuntu 20.04 LTS and newer\n- Debian 10 and newer\n- CentOS/RHEL 7 and newer (GLIBCXX issue fixed in v2.0.0 via static linking)\n- Fedora 33 and newer\n- Oracle Linux 9.5\n- macOS 12 (Monterey) and newer (Intel \u0026 Apple Silicon)\n\n### Required Permissions\n- ICMP mode requires root privileges to create raw sockets\n- TCP mode can be run as a non-privileged user\n\n## Download\n\nPre-built binaries are available for Linux and macOS:\n\n### Latest Release\n\n| Platform | Package | Link |\n|----------|---------|------|\n| Linux (Debian/Ubuntu) | DEB | [network-scanner-latest.deb](https://github.com/tldr-it-stepankutaj/network-scanner/releases/latest) |\n| Linux (RHEL/CentOS/Fedora) | RPM | [network-scanner-latest.rpm](https://github.com/tldr-it-stepankutaj/network-scanner/releases/latest) |\n| Linux (Generic) | TAR.GZ | [network-scanner-linux.tar.gz](https://github.com/tldr-it-stepankutaj/network-scanner/releases/latest/download/network-scanner-linux.tar.gz) |\n| macOS (Apple Silicon) | TAR.GZ | [network-scanner-macos-arm64.tar.gz](https://github.com/tldr-it-stepankutaj/network-scanner/releases/latest/download/network-scanner-macos-arm64.tar.gz) |\n\n### Installation from Binary Archive\n\n```bash\n# Download the latest release (Linux)\ncurl -LO https://github.com/tldr-it-stepankutaj/network-scanner/releases/latest/download/network-scanner-linux.tar.gz\n\n# Extract\ntar -xzf network-scanner-linux.tar.gz\n\n# Install (requires root privileges)\nsudo cp -r usr/* /usr/\n\n# Verify installation\nnetwork-scanner --version\n```\n\n## Build\n\n### Prerequisites\n\n- CMake \u003e= 3.10\n- C++17 compiler (GCC / Clang)\n- libcurl development headers\n- macOS or Linux\n\n### Build Dependencies\n\n- `cmake` (\u003e= 3.10)\n- `g++` or `clang++` with C++17 support\n- `make`\n- `libcurl-dev` / `libcurl4-openssl-dev` (Debian/Ubuntu) or `libcurl-devel` (RHEL/Fedora)\n- For developing/building RPM: `rpm-build`\n- For developing/building DEB: `dpkg-dev`\n\n### Build instructions\n\n#### Using configure script (recommended for most users)\n\n```bash\ngit clone https://github.com/tldr-it-stepankutaj/network-scanner.git\ncd network-scanner\n./configure\nmake\n```\n\nYou can customize the build with options:\n```bash\n./configure --prefix=/usr/local --debug\n```\n\nRun `./configure --help` to see all available options.\n\n#### Using CMake directly\n\n```bash\ngit clone https://github.com/tldr-it-stepankutaj/network-scanner.git\ncd network-scanner\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake -j$(nproc)\n```\n\n#### Static linking (for maximum compatibility)\n\n```bash\ncmake -B build -DSTATIC_LIBCXX=ON\ncmake --build build --parallel\n```\n\n### Running tests\n\n```bash\ncmake -B build -DBUILD_TESTS=ON\ncmake --build build --parallel\ncd build \u0026\u0026 ctest --output-on-failure\n```\n\n## Install\n\n### From Source\n\nIf you used the configure script:\n```bash\nsudo make install\n```\n\nIf you used CMake directly:\n```bash\n# From the build directory\nsudo make install\n```\n\nYou can also uninstall the software with:\n```bash\nsudo make uninstall\n```\n\nThis will install:\n- The main executable to `/usr/bin/`\n- Man page to `/usr/share/man/man1/`\n- Bash completion to `/usr/share/bash-completion/completions/`\n- Zsh completion to `/usr/share/zsh/site-functions/`\n\nTo change the installation prefix, use:\n```bash\n./configure --prefix=/usr/local\n```\n\n### From Package\n```bash\n# Debian/Ubuntu\nsudo dpkg -i network-scanner-*.deb\n\n# RHEL/CentOS/Fedora\nsudo rpm -i network-scanner-*.rpm\n```\n\n## Changelog (v2.0.0)\n\n- **JSON output** (`--json`) for scripting and automation\n- **Configurable timeout** (`--timeout MS`) for slow networks\n- **`--no-color` flag** and `NO_COLOR` environment variable support\n- **`--verbose` / `--debug`** logging to stderr\n- **Graceful Ctrl+C** — interrupt scans cleanly with partial results\n- **Automatic subnet detection** — uses actual subnet mask instead of hardcoded /24\n- **MAC vendor identification** — looks up device manufacturer via ARP + nmap-mac-prefixes\n- **Scan statistics** — duration, host count, discovery rate displayed after scan\n- **macOS gateway detection** — fixed; previously returned empty on macOS\n- **Security fix** — replaced `std::system()` with `fork/exec` in fping fallback (no shell injection)\n- **Static libstdc++ linking** — fixes `GLIBCXX_3.4.30` error on older Linux distros (RHEL 9, Oracle Linux)\n- **macOS CI builds** — ARM64 binaries now included in releases\n- **Unit tests** — Google Test suite for IP/CIDR parsing, checksum, and subnet functions\n\n## License\n\nGPL-3.0 license\n\n---\n## Author\n\nThis tool was developed by Stepan Kutaj (TLDR-IT). For more information or questions, contact me at [stepan.kutaj@tldr-it.com](mailto:stepan.kutaj@tldr-it.com) or visit my website at [www.tldr-it.com](https://www.tldr-it.com).\n\n[![GitHub](https://img.shields.io/github/followers/tldr-it-stepankutaj?label=Follow%20%40tldr-it-stepankutaj\u0026style=social)](https://github.com/tldr-it-stepankutaj)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue?style=social\u0026logo=linkedin)](https://www.linkedin.com/in/stepankutaj)\n[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Support-orange?style=social\u0026logo=buy-me-a-coffee)](https://buymeacoffee.com/stepankutae)\n\n*For educational and legitimate security research purposes only. Always obtain proper authorization before performing reconnaissance on any systems.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftldr-it-stepankutaj%2Fnetwork-scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftldr-it-stepankutaj%2Fnetwork-scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftldr-it-stepankutaj%2Fnetwork-scanner/lists"}