Skip to main content

Check if a port is open on a host

Project description

philiprehberger-portcheck

Tests PyPI version Last updated

Check if a port is open on a host.

Installation

pip install philiprehberger-portcheck

Usage

from philiprehberger_portcheck import is_open, scan, wait_for

# Single port check
is_open("localhost", 8080)                  # True/False
is_open("192.168.1.1", 22, timeout=2.0)    # True/False

# Scan multiple ports
results = scan("localhost", ports=[80, 443, 8080, 5432])
for port, result in results.items():
    if result.is_open:
        print(f"Port {port}: open ({result.service})")

# Scan common ports
results = scan("localhost", ports="common")

# Wait for a port to become available
wait_for("localhost", 5432, timeout=30)

Service lookup

from philiprehberger_portcheck import SERVICES, service_name

service_name(443)        # "https"
service_name(22)         # "ssh"
service_name(99999)      # "" (unknown port)

# Read directly from the well-known port map
SERVICES[5432]           # "postgresql"

API

Function / Class Description
is_open(host, port, timeout=2.0) Check if a TCP port is open
scan(host, ports, timeout=1.0, max_workers=50) Scan multiple ports concurrently
wait_for(host, port, timeout=30, interval=1.0) Block until port opens or raise TimeoutError
service_name(port) Look up the service name for a port (falls back to socket.getservbyport)
PortResult Scan result — .port, .is_open, .service
SERVICES Read-only mapping of well-known port numbers to service names
COMMON_PORTS List of well-known port numbers (HTTP, SSH, DB, etc.)

Development

pip install -e .
python -m pytest tests/ -v

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

License

MIT

Project details


Download files

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

Source Distribution

philiprehberger_portcheck-0.2.0.tar.gz (173.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_portcheck-0.2.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_portcheck-0.2.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_portcheck-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2ecea7d137574ea6435ce18a5f272ea215d0d0bf6f0d0bf14514062a872dbe01
MD5 fd8caa611efd2240021d38c71a78f67b
BLAKE2b-256 9b24f0541a316143782981e9204d3ff0ad46629fbc22eb3625070a3ce39eac76

See more details on using hashes here.

File details

Details for the file philiprehberger_portcheck-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_portcheck-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2df4de90d4d9f69517ce5abde5467724fb6cc307fd5e7e38ac0730ad81784547
MD5 2668213a1253a90e72f965846d34fcab
BLAKE2b-256 d0a103e7b7081ef7cf7383c207e28e6cd3923bf2eb61966e9ede07701010e4f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page