Skip to main content

TCP port monitoring and discovery

Project description

https://img.shields.io/pypi/v/portend.svg https://img.shields.io/pypi/pyversions/portend.svg https://img.shields.io/travis/jaraco/portend/master.svg Code style: Black https://img.shields.io/appveyor/ci/jaraco/portend/master.svg https://readthedocs.org/projects/portend/badge/?version=latest

por·tend pôrˈtend/ verb

be a sign or warning that (something, especially something momentous or calamitous) is likely to happen.

Usage

Use portend to monitor TCP ports for bound or unbound states.

For example, to wait for a port to be occupied, timing out after 3 seconds:

portend.occupied('www.google.com', 80, timeout=3)

Or to wait for a port to be free, timing out after 5 seconds:

portend.free('::1', 80, timeout=5)

The portend may also be executed directly. If the function succeeds, it returns nothing and exits with a status of 0. If it fails, it prints a message and exits with a status of 1. For example:

python -m portend localhost:31923 free
(exits immediately)

python -m portend -t 1 localhost:31923 occupied
(one second passes)
Port 31923 not bound on localhost.

Portend also exposes a find_available_local_port for identifying a suitable port for binding locally:

port = portend.find_available_local_port()
print(port, "is available for binding")

Portend additionally exposes the lower-level port checking functionality in the Checker class, which currently exposes only one public method, assert_free:

portend.Checker().assert_free('localhost', 31923)

If assert_free is passed a host/port combination that is occupied by a bound listener (i.e. a TCP connection is established to that host/port), assert_free will raise a PortNotFree exception.

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

portend-2.6.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

portend-2.6-py2.py3-none-any.whl (5.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file portend-2.6.tar.gz.

File metadata

  • Download URL: portend-2.6.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.8.0

File hashes

Hashes for portend-2.6.tar.gz
Algorithm Hash digest
SHA256 600dd54175e17e9347e5f3d4217aa8bcf4bf4fa5ffbc4df034e5ec1ba7cdaff5
MD5 f0c866649b4b9758f75ef6641907bfe7
BLAKE2b-256 0498997f8668b11292f13d3e69fc626232c497228306c764523c5a3a3b59c775

See more details on using hashes here.

File details

Details for the file portend-2.6-py2.py3-none-any.whl.

File metadata

  • Download URL: portend-2.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.8.0

File hashes

Hashes for portend-2.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 62dd00b94a6a55fbf0320365fbdeba37f0d1fe14d613841037dc4780bedfda8f
MD5 bf2c356b2dba5f76cf8d9bed77cc9107
BLAKE2b-256 d779eee70a512bffe5ceb5008f8e3326581948f50ca393c3bcb4d557e4818bd1

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