Convert Figma logo to code with AI

nmap logonmap

Nmap - the Network Mapper. Github mirror of official SVN repository.

9,874
2,364
9,874
869

Top Related Projects

23,262

TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.

4,587

A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests

5,434

ZMap is a fast single packet network scanner designed for Internet-wide network surveys.

14,087

🤖 The Modern Port Scanner 🤖

2,212

Striker is an offensive information and vulnerability scanner.

Quick Overview

Nmap (Network Mapper) is a powerful open-source tool for network discovery and security auditing. It is used by system administrators and security professionals to scan networks, detect open ports, identify running services, and gather information about operating systems and devices on a network.

Pros

  • Versatile and feature-rich, offering a wide range of scanning techniques and options
  • Highly customizable, allowing users to tailor scans to specific needs
  • Regularly updated with new features and security vulnerability checks
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons

  • Steep learning curve for beginners due to its extensive feature set
  • Can be resource-intensive for large-scale scans
  • May trigger security alerts or be blocked by firewalls
  • Potential for misuse if not used responsibly and ethically

Getting Started

To get started with Nmap:

  1. Install Nmap from the official website: https://nmap.org/download.html
  2. Open a terminal or command prompt
  3. Run a basic scan:
nmap 192.168.1.0/24

This scans the entire 192.168.1.0/24 subnet.

  1. For a more detailed scan with OS detection and version scanning:
nmap -A -T4 192.168.1.1

This performs an aggressive scan (-A) with version scanning, script scanning, and OS detection on the specified IP address.

  1. To scan specific ports:
nmap -p 80,443,8080 example.com

This scans ports 80, 443, and 8080 on example.com.

Remember to always obtain proper authorization before scanning networks you don't own or manage.

Competitor Comparisons

23,262

TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.

Pros of Masscan

  • Extremely fast scanning speed, capable of scanning the entire Internet in under 6 minutes
  • Asynchronous operation, allowing for efficient use of network resources
  • Simplified codebase, focusing on raw performance for large-scale scans

Cons of Masscan

  • Limited protocol support compared to Nmap
  • Less comprehensive OS fingerprinting and service detection capabilities
  • Fewer built-in scripts and extensibility options

Code Comparison

Masscan (simplified port scanning):

for (;;) {
    while (transmit_queue) {
        packet = get_next_packet();
        transmit_packet(packet);
    }
    while (receive_queue) {
        packet = receive_packet();
        process_received_packet(packet);
    }
}

Nmap (more complex scanning logic):

local function scan_target(host, port)
    local socket = nmap.new_socket()
    local status, err = socket:connect(host, port)
    if status then
        -- Perform additional probes and analysis
    end
    socket:close()
end

Masscan focuses on raw speed and simplicity, while Nmap offers more comprehensive scanning capabilities and extensibility. Masscan is ideal for large-scale, rapid port scanning, whereas Nmap excels in detailed network exploration and security auditing with its extensive feature set and scripting engine.

4,587

A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests

Pros of naabu

  • Written in Go, offering better performance and concurrency
  • Lightweight and easy to install with a single binary
  • Designed for large-scale scanning with built-in rate limiting

Cons of naabu

  • Less feature-rich compared to Nmap
  • Smaller community and ecosystem
  • Limited protocol support beyond basic TCP/UDP scanning

Code Comparison

naabu:

options := naabu.Options{
    Host:    "example.com",
    Ports:   "80,443,8080",
    Rate:    1000,
    Threads: 10,
}
result, err := naabu.Scan(&options)

Nmap:

local nmap = require "nmap"
local shortport = require "shortport"

portrule = shortport.port_or_service({80, 443, 8080}, {"http", "https"})

action = function(host, port)
    -- Perform scan actions
end

Both tools offer command-line interfaces and programmable APIs. naabu's Go implementation provides a more straightforward API for integration into other Go projects, while Nmap's Lua scripting engine offers more flexibility for custom scanning logic.

naabu is better suited for quick, large-scale port discovery, while Nmap excels in comprehensive network scanning and service detection. The choice between the two depends on specific use cases and required features.

5,434

ZMap is a fast single packet network scanner designed for Internet-wide network surveys.

Pros of ZMap

  • Significantly faster scanning speed, capable of scanning the entire IPv4 address space in under 45 minutes
  • Optimized for large-scale Internet-wide scanning
  • Designed for simplicity and ease of use in research and network analysis

Cons of ZMap

  • Limited functionality compared to Nmap's extensive feature set
  • Focused primarily on TCP SYN scans, lacking Nmap's diverse scanning techniques
  • Less suitable for detailed host discovery and service/OS detection

Code Comparison

ZMap (simplified scan):

int main(int argc, char *argv[]) {
    struct zmap_args args;
    zmap_parse_args(&args, argc, argv);
    zmap_start(&args);
    return EXIT_SUCCESS;
}

Nmap (simplified scan):

local target = "example.com"
local port_range = "1-1000"
local scan = nmap.new()
scan:scan(target, port_range)
for _, host in ipairs(scan.hosts) do
    print(host.ip, host.status)
end

Both tools serve different purposes, with ZMap excelling in speed and large-scale scanning, while Nmap offers more comprehensive network exploration and security auditing capabilities. ZMap is ideal for Internet-wide studies, while Nmap remains the go-to tool for detailed network analysis and penetration testing.

14,087

🤖 The Modern Port Scanner 🤖

Pros of RustScan

  • Significantly faster port scanning due to Rust's performance and concurrency
  • User-friendly interface with simple command-line options
  • Lightweight and easy to install with minimal dependencies

Cons of RustScan

  • Less comprehensive feature set compared to Nmap's extensive capabilities
  • Smaller community and fewer resources for troubleshooting
  • Limited OS fingerprinting and service detection abilities

Code Comparison

RustScan example:

use rustscan::Scanner;

let scanner = Scanner::new("192.168.1.1");
let open_ports = scanner.scan().unwrap();

Nmap example (using Python bindings):

import nmap

nm = nmap.PortScanner()
nm.scan('192.168.1.1', '1-1000')
open_ports = nm.all_hosts()

While both tools serve similar purposes, RustScan focuses on speed and simplicity, making it ideal for quick initial scans. Nmap, on the other hand, offers a more comprehensive suite of network scanning and discovery tools, making it better suited for in-depth analysis and complex network environments. RustScan can be used in conjunction with Nmap to leverage the strengths of both tools.

2,212

Striker is an offensive information and vulnerability scanner.

Pros of Striker

  • All-in-one tool combining multiple security checks
  • User-friendly command-line interface
  • Faster for quick reconnaissance of a single target

Cons of Striker

  • Less comprehensive than Nmap for network scanning
  • Smaller community and less frequent updates
  • Limited customization options compared to Nmap

Code Comparison

Striker (Python):

def start_engine():
    print_banner()
    url = take_input()
    if url != '':
        engine_start(url)

Nmap (C):

int main(int argc, char *argv[]) {
  int arg;
  nmap_fetchfile_init();
  parse_options(argc, argv);
  nmap_main(argc, argv);
  return 0;
}

Key Differences

  • Striker is written in Python, while Nmap is primarily in C
  • Striker focuses on web application security, Nmap on network scanning
  • Nmap offers more extensive scanning options and customization
  • Striker provides a simpler interface for quick security checks
  • Nmap has a larger user base and more frequent updates

Use Cases

Striker:

  • Quick web application security assessment
  • Basic reconnaissance of a single target
  • Automated vulnerability scanning for web applications

Nmap:

  • Comprehensive network scanning and discovery
  • Port scanning and service/version detection
  • Network security auditing and penetration testing

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Nmap Build Status Language grade: C/C++ Language grade: Python Total alerts

Nmap is released under a custom license, which is based on (but not compatible with) GPLv2. The Nmap license allows free usage by end users, and we also offer a commercial license for companies that wish to redistribute Nmap technology with their products. See Nmap Copyright and Licensing for full details.

The latest version of this software as well as binary installers for Windows, macOS, and Linux (RPM) are available from Nmap.org

Full documentation is also available on the Nmap.org website.

Questions and suggestions may be sent to the Nmap-dev mailing list.

Installing

Ideally, you should be able to just type:

./configure
make
make install

For far more in-depth compilation, installation, and removal notes, read the Nmap Install Guide on Nmap.org.

Using Nmap

Nmap has a lot of features, but getting started is as easy as running nmap scanme.nmap.org. Running nmap without any parameters will give a helpful list of the most common options, which are discussed in depth in the man page. Users who prefer a graphical interface can use the included Zenmap front-end.

Contributing

Information about filing bug reports and contributing to the Nmap project can be found in the HACKING and CONTRIBUTING.md files.