Skip to main content

Multi Linguistic Ping (pingping)

Python Version Version License Test Coverage Tests Build Status Downloads

Table of Contents

Introduction

pingping is a special library which understands multi linguistic of ping output and translated the result to machine understandable format. i.e. Json

pingping is a vendor independent library where you can parse any language ping output

pingping support tcping which works on transport layer i.e. Ping on proxy server, here ping refers to seding packets via tcp protocol to check the connectivity.

Docs

How to use pingping?

  • Command Line
    Type pingping <ip-address> or pingping <ip-address> --web. For more help type pingping -h

  • Python
    It's very simple, create an object of Ping and call ping method with ip address. Internally it calls system ping command and captures the needed result.

How to run ping command?

# cli
pingping 192.168.1.1
pingping 1.1.1.1

# python code
obj = Ping()
print(obj.ping('192.168.1.1'))
print(obj.ping('1.1.1.1'))

# python tcping ping 
obj = Ping(command='tcping', layer=4, timeout=3)
print(obj.ping('192.168.1.1'))
print(obj.ping('1.1.1.1'))

It returns Json output and easy to understand by the keys of it.

{"ip": "192.168.1.1", "loss_percentage": 100.0}
{"ip": "1.1.1.1", "loss_percentage": 0.0, "min": 55.669, "avg": 78.198, "max": 130.778, "time_in": "ms"}

How to capture result from ping output?

I am having ping result how to analise the output of it.

Ping.fetch_ping_data(ping_output) # it's a class method.

It automatically identifies the ip address and important details from it. It doesn't have any language barier.

{"ip": "1.1.1.1", "loss_percentage": 0.0, "min": 55.669, "avg": 78.198, "max": 130.778, "time_in": "ms"}

Commands

Usage pingping  <ip-address>
                -c | --count <Number>
                -l4 | --web | --tcp | --http (ping over proxy)
                -h | --help

Pre-requisites

pingping supports Python 3.9+. The OS should not matter.

  • shconfparser is used to capture the data.

Installation and Downloads

The best way to get pingping is with pip or uv:

pip install pingping

Or using uv:

uv pip install pingping

If you're interested in the source, you can always pull from the github repo:

git clone https://github.com/network-tools/pingping.git
cd pingping
uv sync --all-extras  # Install with dev dependencies

FAQ

  • Question: What Python versions does pingping support?
    Answer: pingping requires Python 3.8 or higher. All releases are tested against Python 3.8, 3.9, 3.10, 3.11, and 3.12.

Other Resources

Bug Tracker and Support

Unit Tests

  • pingping project unit tests are running at GitHub Actions via pytest for Python 3.9+.

  • The current build status is:

    Build Status

Development

This project uses modern Python tooling:

  • uv - Fast Python package installer and resolver
  • ruff - Fast Python linter
  • black - Code formatter
  • pytest - Testing framework
  • testiq - Test quality analysis tool

Quick Start

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and set up the project
git clone https://github.com/network-tools/pingping.git
cd pingping

# Install dependencies
make install

# Run tests
make test

# Run all quality checks (linter, formatter, tests)
make all

Makefile Commands

The project includes a Makefile for common development tasks:

make help          # Show all available commands
# Run testiq analysis (using Makefile)
make testiq

# Get test quality score
make testiq-score

# Generate HTML report
make testiq-html
open testiq_report.html

Or use commands directly:

# Generate coverage data for TestIQ
uv run pytest --testiq-output=testiq_coverage.json

# Analyze for duplicate tests (skip similarity with threshold 1.0)
uv run testiq analyze testiq_coverage.json --threshold 1.0

# Get test quality score
uv run testiq quality-score testiq_coverage.jsonn all CI checks locally

Test Quality Analysis

Analyze test quality and find duplicates using TestIQ:

# Generate coverage data for TestIQ
uv run pytest --testiq-output=testiq_coverage.json

# Analyze for duplicate tests (skip similarity with threshold 1.0)
uv run testiq analyze testiq_coverage.json --threshold 1.0

# Get test quality score
uv run testiq quality-score testiq_coverage.json

# Generate HTML report with test duplicates analysis
uv run testiq analyze testiq_coverage.json --threshold 1.0 --format html --output testiq_report.html
open testiq_report.html

Contributing

We welcome contributions! Please see our Contributing Guide for detailed information on:

  • Setting up your development environment
  • Running tests and quality checks
  • Code style guidelines
  • Submitting pull requests

Changelog

See CHANGELOG.md for a detailed history of changes to this project.

  • pingping is licensed MIT 2019

    License: MIT

Author and Thanks

pingping was developed by Kiran Kumar Kotari

Metadata

Release files for pingping 1.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pingping 1.3.5
File Size Uploaded
pingping-1.3.5.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pingping 1.3.5
File Interpreter ABI Platform
pingping-1.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / pingping-1.3.5.tar.gz

Download URL pingping-1.3.5.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ec9c9c9f33aacbc90f4bbb9eba29b67723b1d6f46e5e48750344eef6a3c2d657
BLAKE2b-256 checksum
How to use checksums
d83dc9fb95b486cb953b13d600e14bebdceaae355d39955ffe016d2a1e1903fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 17, 2026.

Transparency log

Release files / pingping-1.3.5-py3-none-any.whl

Download URL pingping-1.3.5-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ae94ff8ade232ce612e7fa4168bb0b1c7e734e49ed7d265a59c544ba9c67294
BLAKE2b-256 checksum
How to use checksums
3865a3693889a3fcd49787f68b4cf63db92b95b5f1a0cbcbf9a77e3c0a08031f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.5 This release

2 release files

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.3

1 release file

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page