🎯 Port Sniffer

Lightning-fast concurrent port scanning tool built with Rust

About Port Sniffer

Port Sniffer is a high-performance command-line tool that helps you discover all open ports on a given host. Built with Rust for speed and reliability, it leverages native OS threads to scan ports concurrently, making it significantly faster than traditional sequential port scanning tools.

Whether you're a system administrator, security researcher, or developer, Port Sniffer provides a fast and efficient way to identify open ports on network hosts.

Key Features

⚡ Concurrent Scanning

Uses native OS threads to scan multiple ports simultaneously, delivering blazing-fast results compared to sequential scanning.

🛠️ Fully Customizable

Configure thread count, timeout values, specific port ranges, and logging levels to suit your needs.

🔧 Easy to Use

Simple command-line interface with sensible defaults. Just provide a hostname or IP address and get results.

📊 Flexible Output

Get detailed formatted results or use bare mode for plain port numbers, perfect for scripting and automation.

🚀 Cross-Platform

Works on Linux, macOS, and Windows. Install via Cargo and use anywhere Rust is supported.

📝 Open Source

MIT licensed with an active community. Contribute, report issues, and help improve Port Sniffer.

Installation

Port Sniffer is distributed via crates.io, the Rust package registry. Make sure you have Rust installed on your system.

Install via Cargo

cargo install nexuslab_port_sniffer --name port_sniffer

This command downloads the source code, compiles it, and installs the port_sniffer binary in your system's binary directory (usually ~/.cargo/bin/).

Verification:
After installation, verify it works by running: port_sniffer --version

Usage

Once installed, use the port_sniffer command to scan for open ports on a target host.

Basic Syntax

port_sniffer [OPTIONS] <IP_OR_DOMAIN>

Quick Examples

Scan localhost on all ports:
port_sniffer 127.0.0.1
Scan a specific domain with 20 threads:
port_sniffer --threads 20 example.com
Scan specific port range:
port_sniffer --ports 80-8080 192.168.1.1
Get bare output for scripting:
port_sniffer --bare 127.0.0.1

Options

Option Short Long Description Default
Number of threads -t --threads Number of concurrent threads 10
Timeout - --timeout Connection timeout in seconds 2
Ports -p --ports Ports to scan (hostname or range) All (1-65535)
Log level - --log_level Log verbosity (info or debug) info

Flags

Flag Short Long Description
Bare output -b --bare Output plain port numbers (newline-separated)
Help -h --help Print help information
Version -V --version Print version information

Contributing

We welcome contributions from the community! Whether it's bug reports, feature requests, or code improvements, your help makes Port Sniffer better.

How to Contribute

  1. Fork the repository
    Click the "Fork" button on the GitHub repository
  2. Clone your fork locally
    git clone https://github.com/your-username/port-sniffer
  3. Create a feature branch
    git checkout -b feature/your-feature-name
  4. Make your changes
    Edit, test, and refine your code
  5. Commit and push
    git commit -m "Your descriptive message"
    git push origin feature/your-feature-name
  6. Open a pull request
    Submit your PR with a clear description of your changes

Please review our contribution guidelines for more details.

License

Port Sniffer is licensed under the MIT License, which means you're free to use, modify, and distribute it for commercial and private purposes, as long as you include the license notice.

View the full license