Skip to main content

Simple CLI port scanner

Project description


Build Status codecov code style License: MIT

Simple CLI wrapper around nmap to perform port scanning in Python

Note: This software is indended for legitimate use only.


  • Scanning of IPV4, IPV6 hosts and CIDR blocks.
  • Parsing of hosts from input JSON file.
  • Automated generation of reports in HTML format.
  • Parallel scanning for increased performance.
  • Optional Docker-based execution.

Example command:

$ port-eye -h4 -o report.html

Output html file example:

Example output


This application is compatible with Python 2.7 and Python 3.5+.

Docker installation

If you have Docker installed, you can pull the image from Docker-Hub:

docker pull ahugues/port-eye

You can also build the image by cloning the repository and running:

docker build -t port-eye .


You need to install nmap on your machine for the application to work (unless you choose the Docker install.)

Example on Ubuntu:

sudo apt update
sudo apt install nmap

Example on Arch

sudo pacman -S nmap

Example on Mac with Homebrew

brew install nmap

Install with pypi

If you have Python 2.7 or 3.5+ installed, you can install port-eye from PyPI:

pip install port-eye

or locally by clonning the repository and running:

pip install .


General notes

port-eye exposes a command line executable named port-eye

When run without any option, port-eye will simply display the help message.

Input hosts can be inputed from the CLI with the option -t or -target. Inputted hosts can be IPV4 and 6 as well as CIDR blocks.

Hosts can be added from an input file in which hosts are put line by line. Example:

If using Docker, and assuming you are working in a certain directory, you can run a port-eye container using:

docker run -v "$(pwd)":/files port-eye <options>

Or if built locally

docker run -v "$(pwd)":/files port-eye <options>

CLI reference

Usage: port-eye [OPTIONS]

  Run the main application from arguments provided in the CLI.

  -t, --target TEXT               Target host (IPV4, IPV6 or CIDR)
  -f, --file PATH                 File containing the hosts to check
  -l, --logging [debug|info|warning|error]
                                  Select logging level in the terminal
  -m, --mock                      Use mock API instead of really running nmap
  -o, --output PATH               Output HTML file into which the results must
                                  be stored  [required]
  -h, --help                      Show this message and exit.


Contributions are closed at the moment.



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for port-eye, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size port_eye-0.1.0-py3-none-any.whl (24.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size port-eye-0.1.0.tar.gz (18.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page