Metadata-Version: 2.4
Name: 2ping
Version: 4.6.1
Summary: 2ping a bi-directional ping utility
Author-email: Ryan Finnie <ryan@finnie.org>
License-Expression: MPL-2.0
Project-URL: Homepage, https://www.finnie.org/software/2ping/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Internet
Classifier: Topic :: System :: Networking
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: COPYING.md
Provides-Extra: full
Requires-Dist: distro; extra == "full"
Requires-Dist: dnspython; extra == "full"
Requires-Dist: netifaces; extra == "full"
Requires-Dist: pycryptodomex; extra == "full"
Dynamic: license-file

# 2ping - A bi-directional ping utility

![ci](https://github.com/rfinnie/2ping/workflows/ci/badge.svg)

https://www.finnie.org/software/2ping/

## About

2ping is a bi-directional ping utility.
It uses 3-way pings (akin to TCP SYN, SYN/ACK, ACK) and after-the-fact state comparison between a 2ping listener and a 2ping client to determine which direction packet loss occurs.

## Installation

2ping requires Python 3 version 3.6 or higher.

To install 2ping with all optional dependencies as a pipx package:

    pipx install '.[full]'

Python 3 stdlib is the only requirement for base functionality, but 2ping can utilize the following modules if available:

* [distro](https://pypi.org/project/distro/) for system distribution detection
* [dnspython](https://pypi.org/project/dnspython/) for --srv
* [netifaces](https://pypi.org/project/netifaces/) for listening on all addresses in --listen mode
* [pycryptodomex](https://pypi.org/project/pycryptodomex/) (recommended) or [pycryptodome](https://pypi.org/project/pycryptodome/) or [pycrypto](https://pypi.org/project/pycrypto/) for --encrypt
* [systemd](https://pypi.org/project/systemd/) for using systemd-supplied sockets

## Usage

Please see the 2ping manpage for invocation options, but in short, start a listener on the far end:

    2ping --listen

And run 2ping on the near end, connecting to the far end listener:

    2ping $LISTENER

Where "$LISTENER" is the name or IP address of the listener.

## License

2ping - A bi-directional ping utility

Copyright (C) 2010-2025 [Ryan Finnie](https://www.finnie.org/)

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.

This document is provided under the following license:

    SPDX-PackageName: 2ping
    SPDX-PackageSupplier: Ryan Finnie <ryan@finnie.org>
    SPDX-PackageDownloadLocation: https://github.com/rfinnie/2ping
    SPDX-FileCopyrightText: © 2010 Ryan Finnie <ryan@finnie.org>
    SPDX-License-Identifier: CC-BY-SA-4.0
