{"id":15640541,"url":"https://github.com/thombashi/pingparsing","last_synced_at":"2025-04-06T06:13:11.555Z","repository":{"id":53507290,"uuid":"53180953","full_name":"thombashi/pingparsing","owner":"thombashi","description":"pingparsing is a CLI-tool/Python-library parser and transmitter for ping command :arrow_right_hook:","archived":false,"fork":false,"pushed_at":"2024-07-15T18:18:58.000Z","size":588,"stargazers_count":78,"open_issues_count":3,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-29T22:31:43.953Z","etag":null,"topics":["cli-app","network","parser","ping","python-library"],"latest_commit_sha":null,"homepage":"https://pingparsing.rtfd.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thombashi.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"thombashi","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-03-05T03:19:19.000Z","updated_at":"2024-09-02T22:23:56.000Z","dependencies_parsed_at":"2024-05-20T21:15:55.576Z","dependency_job_id":"7f6bb5da-a5fa-4615-914c-f49fcf3a7655","html_url":"https://github.com/thombashi/pingparsing","commit_stats":{"total_commits":844,"total_committers":4,"mean_commits":211.0,"dds":"0.20023696682464454","last_synced_commit":"5c9d51d322298c5c0777088af504e044b0896d37"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thombashi%2Fpingparsing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thombashi%2Fpingparsing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thombashi%2Fpingparsing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thombashi%2Fpingparsing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thombashi","download_url":"https://codeload.github.com/thombashi/pingparsing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247365644,"owners_count":20927366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","network","parser","ping","python-library"],"created_at":"2024-10-03T11:37:11.098Z","updated_at":"2025-04-06T06:13:11.519Z","avatar_url":"https://github.com/thombashi.png","language":"Python","funding_links":["https://github.com/sponsors/thombashi"],"categories":["Python"],"sub_categories":[],"readme":".. contents:: **pingparsing**\n   :backlinks: top\n   :depth: 2\n\nSummary\n=========\n`pingparsing \u003chttps://github.com/thombashi/pingparsing\u003e`__ is a CLI-tool/Python-library parser and transmitter for the ping command.\n\n|PyPI pkg ver| |Supported Python impl| |Supported Python ver| |CI status| |CodeQL|\n\n.. |PyPI pkg ver| image:: https://badge.fury.io/py/pingparsing.svg\n    :target: https://badge.fury.io/py/pingparsing\n    :alt: PyPI package version\n\n.. |Supported Python impl| image:: https://img.shields.io/pypi/implementation/pingparsing.svg\n    :target: https://pypi.org/project/pingparsing\n    :alt: Supported Python implementations\n\n.. |Supported Python ver| image:: https://img.shields.io/pypi/pyversions/pingparsing.svg\n    :target: https://pypi.org/project/pingparsing\n    :alt: Supported Python versions\n\n.. |CI status| image:: https://github.com/thombashi/pingparsing/actions/workflows/ci.yml/badge.svg\n    :target: https://github.com/thombashi/pingparsing/actions/workflows/ci.yml\n    :alt: CI status of Linux/macOS/Windows\n\n.. |CodeQL| image:: https://github.com/thombashi/pingparsing/actions/workflows/github-code-scanning/codeql/badge.svg\n    :target: https://github.com/thombashi/pingparsing/actions/workflows/github-code-scanning/codeql\n    :alt: CodeQL\n\nCLI Usage\n====================\nA CLI command (``pingparsing`` command) is included in the package. The command could do the following:\n\n- Execute ``ping`` and parse the result\n- Parse ping results from:\n    - file(s)\n    - the standard input\n\nExecute ping and parse the result\n--------------------------------------------\nIf you specify destination(s) to the ``pingparsing`` command as positional arguments,\nthe command executes ``ping`` for each destination(s) and parses the result.\n``ping`` will execute in parallel for multiple destinations.\nThe parsed result is outputted in JSON format.\n\n.. code-block:: console\n\n    $ pingparsing google.com\n    {\n        \"google.com\": {\n            \"destination\": \"google.com\",\n            \"packet_transmit\": 10,\n            \"packet_receive\": 10,\n            \"packet_loss_rate\": 0.0,\n            \"packet_loss_count\": 0,\n            \"rtt_min\": 34.189,\n            \"rtt_avg\": 46.054,\n            \"rtt_max\": 63.246,\n            \"rtt_mdev\": 9.122,\n            \"packet_duplicate_rate\": 0.0,\n            \"packet_duplicate_count\": 0\n        }\n    }\n\n.. code-block:: console\n\n    $ pingparsing google.com twitter.com\n    {\n        \"google.com\": {\n            \"destination\": \"google.com\",\n            \"packet_transmit\": 10,\n            \"packet_receive\": 10,\n            \"packet_loss_rate\": 0.0,\n            \"packet_loss_count\": 0,\n            \"rtt_min\": 37.341,\n            \"rtt_avg\": 44.538,\n            \"rtt_max\": 53.997,\n            \"rtt_mdev\": 5.827,\n            \"packet_duplicate_rate\": 0.0,\n            \"packet_duplicate_count\": 0\n        },\n        \"twitter.com\": {\n            \"destination\": \"twitter.com\",\n            \"packet_transmit\": 10,\n            \"packet_receive\": 10,\n            \"packet_loss_rate\": 0.0,\n            \"packet_loss_count\": 0,\n            \"rtt_min\": 45.377,\n            \"rtt_avg\": 68.819,\n            \"rtt_max\": 78.581,\n            \"rtt_mdev\": 9.769,\n            \"packet_duplicate_rate\": 0.0,\n            \"packet_duplicate_count\": 0\n        }\n    }\n\n.. code-block:: console\n\n    $ pingparsing google.com -c 3 --icmp-reply\n    {\n        \"google.com\": {\n            \"destination\": \"google.com\",\n            \"packet_transmit\": 3,\n            \"packet_receive\": 3,\n            \"packet_loss_count\": 0,\n            \"packet_loss_rate\": 0.0,\n            \"rtt_min\": 36.997,\n            \"rtt_avg\": 49.1,\n            \"rtt_max\": 60.288,\n            \"rtt_mdev\": 9.533,\n            \"packet_duplicate_count\": 0,\n            \"packet_duplicate_rate\": 0.0,\n            \"icmp_replies\": [\n                {\n                    \"destination\": \"nrt20s21-in-f14.1e100.net (172.217.175.110)\",\n                    \"bytes\": 64,\n                    \"icmp_seq\": 1,\n                    \"ttl\": 113,\n                    \"time\": 50.0,\n                    \"duplicate\": false\n                },\n                {\n                    \"destination\": \"nrt20s21-in-f14.1e100.net (172.217.175.110)\",\n                    \"bytes\": 64,\n                    \"icmp_seq\": 2,\n                    \"ttl\": 113,\n                    \"time\": 60.2,\n                    \"duplicate\": false\n                },\n                {\n                    \"destination\": \"nrt20s21-in-f14.1e100.net (172.217.175.110)\",\n                    \"bytes\": 64,\n                    \"icmp_seq\": 3,\n                    \"ttl\": 113,\n                    \"time\": 36.9,\n                    \"duplicate\": false\n                }\n            ]\n        }\n    }\n\n\nParse ping result file\n--------------------------------------------\n:Input:\n    .. code-block:: console\n\n        $ cat ping.txt\n        PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.\n\n        --- 192.168.0.1 ping statistics ---\n        1688 packets transmitted, 1553 received, +1 duplicates, 7% packet loss, time 2987ms\n        rtt min/avg/max/mdev = 0.282/0.642/11.699/0.699 ms, pipe 2, ipg/ewma 1.770/0.782 ms\n        $ cat osx.txt\n        PING google.com (172.217.6.238): 56 data bytes\n        64 bytes from 172.217.6.238: icmp_seq=0 ttl=53 time=20.482 ms\n        64 bytes from 172.217.6.238: icmp_seq=1 ttl=53 time=32.550 ms\n        64 bytes from 172.217.6.238: icmp_seq=2 ttl=53 time=32.013 ms\n        64 bytes from 172.217.6.238: icmp_seq=3 ttl=53 time=28.498 ms\n        64 bytes from 172.217.6.238: icmp_seq=4 ttl=53 time=46.093 ms\n\n        --- google.com ping statistics ---\n        5 packets transmitted, 5 packets received, 0.0% packet loss\n        round-trip min/avg/max/stddev = 20.482/31.927/46.093/8.292 ms\n\n:Output:\n    .. code-block:: console\n\n        $ pingparsing ping.txt osx.txt\n        {\n            \"osx.txt\": {\n                \"destination\": \"google.com\",\n                \"packet_transmit\": 5,\n                \"packet_receive\": 5,\n                \"packet_loss_rate\": 0.0,\n                \"packet_loss_count\": 0,\n                \"rtt_min\": 20.482,\n                \"rtt_avg\": 31.927,\n                \"rtt_max\": 46.093,\n                \"rtt_mdev\": 8.292,\n                \"packet_duplicate_rate\": null,\n                \"packet_duplicate_count\": null\n            },\n            \"ping.txt\": {\n                \"destination\": \"192.168.0.1\",\n                \"packet_transmit\": 1688,\n                \"packet_receive\": 1553,\n                \"packet_loss_rate\": 7.997630331753558,\n                \"packet_loss_count\": 135,\n                \"rtt_min\": 0.282,\n                \"rtt_avg\": 0.642,\n                \"rtt_max\": 11.699,\n                \"rtt_mdev\": 0.699,\n                \"packet_duplicate_rate\": 0.0643915003219575,\n                \"packet_duplicate_count\": 1\n            }\n        }\n\n    .. code-block:: console\n\n        $ pingparsing ping.txt osx.txt --icmp-reply\n        {\n            \"ping.txt\": {\n                \"destination\": \"google.com\",\n                \"packet_transmit\": 60,\n                \"packet_receive\": 60,\n                \"packet_loss_count\": 0,\n                \"packet_loss_rate\": 0.0,\n                \"rtt_min\": 61.425,\n                \"rtt_avg\": 99.731,\n                \"rtt_max\": 212.597,\n                \"rtt_mdev\": 27.566,\n                \"packet_duplicate_count\": 0,\n                \"packet_duplicate_rate\": 0.0,\n                \"icmp_replies\": []\n            },\n            \"osx.txt\": {\n                \"destination\": \"google.com\",\n                \"packet_transmit\": 5,\n                \"packet_receive\": 5,\n                \"packet_loss_count\": 0,\n                \"packet_loss_rate\": 0.0,\n                \"rtt_min\": 20.482,\n                \"rtt_avg\": 31.927,\n                \"rtt_max\": 46.093,\n                \"rtt_mdev\": 8.292,\n                \"packet_duplicate_count\": 0,\n                \"packet_duplicate_rate\": 0.0,\n                \"icmp_replies\": [\n                    {\n                        \"icmp_seq\": 0,\n                        \"ttl\": 53,\n                        \"time\": 20.482,\n                        \"duplicate\": false\n                    },\n                    {\n                        \"icmp_seq\": 1,\n                        \"ttl\": 53,\n                        \"time\": 32.55,\n                        \"duplicate\": false\n                    },\n                    {\n                        \"icmp_seq\": 2,\n                        \"ttl\": 53,\n                        \"time\": 32.013,\n                        \"duplicate\": false\n                    },\n                    {\n                        \"icmp_seq\": 3,\n                        \"ttl\": 53,\n                        \"time\": 28.498,\n                        \"duplicate\": false\n                    },\n                    {\n                        \"icmp_seq\": 4,\n                        \"ttl\": 53,\n                        \"time\": 46.093,\n                        \"duplicate\": false\n                    }\n                ]\n            }\n        }\n\n\nParse from the standard input\n--------------------------------------------\n.. code-block:: console\n\n    $ ping -i 0.2 -w 20 192.168.2.101 | pingparsing -\n    {\n        \"destination\": \"192.168.2.101\",\n        \"packet_transmit\": 99,\n        \"packet_receive\": 88,\n        \"packet_loss_count\": 11,\n        \"packet_loss_rate\": 11.11111111111111,\n        \"rtt_min\": 1.615,\n        \"rtt_avg\": 26.581,\n        \"rtt_max\": 93.989,\n        \"rtt_mdev\": 19.886,\n        \"packet_duplicate_count\": 0,\n        \"packet_duplicate_rate\": 0.0\n    }\n\nCLI help\n--------------------------------------------\n::\n\n    usage: pingparsing [-h] [-V] [--max-workers MAX_WORKERS]\n                       [--timestamp {none,epoch,datetime}] [-c COUNT]\n                       [-s PACKET_SIZE] [--ttl TTL] [-w DEADLINE]\n                       [--timeout TIMEOUT] [-I INTERFACE] [--addopts OPTIONS]\n                       [--indent INDENT] [--icmp-reply] [--timezone TIMEZONE]\n                       [--no-color] [--debug | --quiet]\n                       destination_or_file [destination_or_file ...]\n\n    positional arguments:\n      destination_or_file   Destinations to send ping or files to parse. '-' for\n                            parsing the standard input.\n\n    options:\n      -h, --help            show this help message and exit\n      -V, --version         show program's version number and exit\n      --max-workers MAX_WORKERS\n                            Number of threads for when multiple destinations/files\n                            are specified. Defaults to equal two times the number\n                            of cores.\n      --debug               for debug print.\n      --quiet               suppress execution log messages.\n\n    Ping Options:\n      --timestamp {none,epoch,datetime}\n                            [Only for LINUX] none: no timestamps. epoch: add\n                            timestamps with UNIX epoch time format. datetime: add\n                            timestamps with ISO time format.\n      -c COUNT, --count COUNT\n                            Stop after sending the count. see also ping(8) [-c\n                            count] option description.\n      -s PACKET_SIZE, --packet-size PACKET_SIZE\n                            Specifies the number of data bytes to be sent.\n      --ttl TTL             Specifies the Time to Live.\n      -w DEADLINE, --deadline DEADLINE\n                            Timeout before ping exits. valid time units are:\n                            d/day/days, h/hour/hours, m/min/mins/minute/minutes,\n                            s/sec/secs/second/seconds,\n                            ms/msec/msecs/millisecond/milliseconds,\n                            us/usec/usecs/microsecond/microseconds. if no unit\n                            string is found, consider seconds as the time unit.\n                            see also ping(8) [-w deadline] option description.\n                            note: The meaning of the 'deadline' may differ system\n                            from to system.\n      --timeout TIMEOUT     Time to wait for a response per packet. Valid time\n                            units are: d/day/days, h/hour/hours,\n                            m/min/mins/minute/minutes, s/sec/secs/second/seconds,\n                            ms/msec/msecs/millisecond/milliseconds,\n                            us/usec/usecs/microsecond/microseconds. If no unit\n                            string is found, consider milliseconds as the time\n                            unit. Attempt to send packets with milliseconds\n                            granularity in default. If the system does not support\n                            timeout in milliseconds, round up as seconds. Use\n                            system default if not specified. This option will be\n                            ignored if the system does not support timeout itself.\n                            See also ping(8) [-W timeout] option description.\n                            note: The meaning of the 'timeout' may differ from\n                            system to system.\n      -I INTERFACE, --interface INTERFACE\n                            network interface\n      --addopts OPTIONS     extra command line options\n\n    Output Options:\n      --indent INDENT       JSON output will be pretty-printed with the indent\n                            level. (default= 4)\n      --icmp-reply, --icmp-replies\n                            print results for each ICMP packet reply.\n      --timezone TIMEZONE   Time zone for timestamps.\n      --no-color            Turn off colors.\n\n    Documentation: https://pingparsing.rtfd.io/\n    Issue tracker: https://github.com/thombashi/pingparsing/issues\n\nLibrary Usage\n====================\n\nExecute ping and parse the result\n--------------------------------------------\n``PingTransmitter`` class can execute ``ping`` command and obtain the\nping output as a string.\n\n:Sample Code:\n    .. code-block:: python\n\n        import json\n        import pingparsing\n\n        ping_parser = pingparsing.PingParsing()\n        transmitter = pingparsing.PingTransmitter()\n        transmitter.destination = \"google.com\"\n        transmitter.count = 10\n        result = transmitter.ping()\n\n        print(json.dumps(ping_parser.parse(result).as_dict(), indent=4))\n\n:Output:\n    .. code-block:: json\n\n        {\n            \"destination\": \"google.com\",\n            \"packet_transmit\": 10,\n            \"packet_receive\": 10,\n            \"packet_loss_rate\": 0.0,\n            \"packet_loss_count\": 0,\n            \"rtt_min\": 34.458,\n            \"rtt_avg\": 51.062,\n            \"rtt_max\": 62.943,\n            \"rtt_mdev\": 8.678,\n            \"packet_duplicate_rate\": 0.0,\n            \"packet_duplicate_count\": 0\n        }\n\n\nParsing ``ping`` command output\n-------------------------------\n:Sample Code:\n    .. code-block:: python\n\n        import json\n        from textwrap import dedent\n        import pingparsing\n\n        parser = pingparsing.PingParsing()\n        stats = parser.parse(dedent(\"\"\"\\\n            PING google.com (74.125.24.100) 56(84) bytes of data.\n            [1524930937.003555] 64 bytes from 74.125.24.100: icmp_seq=1 ttl=39 time=148 ms\n            [1524930937.787175] 64 bytes from 74.125.24.100: icmp_seq=2 ttl=39 time=137 ms\n            [1524930938.787642] 64 bytes from 74.125.24.100: icmp_seq=3 ttl=39 time=137 ms\n            [1524930939.787653] 64 bytes from 74.125.24.100: icmp_seq=4 ttl=39 time=136 ms\n            [1524930940.788365] 64 bytes from 74.125.24.100: icmp_seq=5 ttl=39 time=136 ms\n\n            --- google.com ping statistics ---\n            5 packets transmitted, 5 received, 0% packet loss, time 4001ms\n            rtt min/avg/max/mdev = 136.537/139.174/148.006/4.425 ms\n            \"\"\"))\n\n        print(\"[extract ping statistics]\")\n        print(json.dumps(stats.as_dict(), indent=4))\n\n        print(\"\\n[extract icmp replies]\")\n        for icmp_reply in stats.icmp_replies:\n            print(icmp_reply)\n\n:Output:\n    ::\n\n        [ping statistics]\n        {\n            \"destination\": \"google.com\",\n            \"packet_transmit\": 5,\n            \"packet_receive\": 5,\n            \"packet_loss_count\": 0,\n            \"packet_loss_rate\": 0.0,\n            \"rtt_min\": 136.537,\n            \"rtt_avg\": 139.174,\n            \"rtt_max\": 148.006,\n            \"rtt_mdev\": 4.425,\n            \"packet_duplicate_count\": 0,\n            \"packet_duplicate_rate\": 0.0\n        }\n\n        [icmp replies]\n        {'destination': '74.125.24.100', 'bytes': 64, 'timestamp': datetime.datetime(2018, 4, 29, 0, 55, 37, 3555), 'icmp_seq': 1, 'ttl': 39, 'time': 148.0, 'duplicate': False}\n        {'destination': '74.125.24.100', 'bytes': 64, 'timestamp': datetime.datetime(2018, 4, 29, 0, 55, 37, 787175), 'icmp_seq': 2, 'ttl': 39, 'time': 137.0, 'duplicate': False}\n        {'destination': '74.125.24.100', 'bytes': 64, 'timestamp': datetime.datetime(2018, 4, 29, 0, 55, 38, 787642), 'icmp_seq': 3, 'ttl': 39, 'time': 137.0, 'duplicate': False}\n        {'destination': '74.125.24.100', 'bytes': 64, 'timestamp': datetime.datetime(2018, 4, 29, 0, 55, 39, 787653), 'icmp_seq': 4, 'ttl': 39, 'time': 136.0, 'duplicate': False}\n        {'destination': '74.125.24.100', 'bytes': 64, 'timestamp': datetime.datetime(2018, 4, 29, 0, 55, 40, 788365), 'icmp_seq': 5, 'ttl': 39, 'time': 136.0, 'duplicate': False}\n\n\nRecommended ping command execution\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe following methods are recommended to execute ``ping`` command to get the output for parsing.\nThese commands include an operation that changes the locale setting to English temporarily.\n\nLinux\n^^^^^\n.. code:: console\n\n    LC_ALL=C ping \u003chost or IP address\u003e -w \u003cseconds\u003e [option] \u003e \u003coutput.file\u003e\n\nWindows\n^^^^^^^\n.. code:: console\n\n    \u003e chcp\n    Active code page: \u003cXXX\u003e    # get current code page\n\n    \u003e chcp 437    # change code page to english\n    \u003e ping \u003chost or IP address\u003e -n \u003cping count\u003e \u003e \u003coutput.file\u003e\n    \u003e chcp \u003cXXX\u003e    # restore code page\n\n-  Reference\n    - https://technet.microsoft.com/en-us/library/cc733037\n\nInstallation\n============\n::\n\n    pip install pingparsing\n\n\nDependencies\n============\n- Python 3.7+\n- `Python package dependencies (automatically installed) \u003chttps://github.com/thombashi/pingparsing/network/dependencies\u003e`__\n\nOptional Dependencies\n------------------------------------\n- pingparsing[cli] extras\n    - `loguru \u003chttps://github.com/Delgan/loguru\u003e`__\n        - Used for logging if the package installed\n    - `Pygments \u003chttp://pygments.org/\u003e`__\n        - Syntax highlighting to ``pingparsing`` command output when installed\n\n\nDocker Image\n==================\n`thombashi/pingparsing - Docker Hub \u003chttps://hub.docker.com/r/thombashi/pingparsing/\u003e`__\n\nSupported Environments\n============================\n- Linux\n- Windows\n- macOS\n\nTested Environments\n---------------------------\n\n+--------------+-----------------------------------+\n| OS           | ping version                      |\n+==============+===================================+\n| Ubuntu 16.04 | ``iputils-ping 20121221-5ubuntu2``|\n+--------------+-----------------------------------+\n| Ubuntu 18.04 | ``iputils-ping 20161105-1ubuntu2``|\n+--------------+-----------------------------------+\n| Ubuntu 20.04 | ``iputils-ping 20190709-3``       |\n+--------------+-----------------------------------+\n| Ubuntu 22.04 | ``iputils-ping 20211215-1``       |\n+--------------+-----------------------------------+\n| Debian 8.6   | ``iputils-ping 20121221-5+b2``    |\n+--------------+-----------------------------------+\n| Fedora 25    | ``iputils-20161105-1.fc25.x86_64``|\n+--------------+-----------------------------------+\n| Windows 10   | ``-``                             |\n+--------------+-----------------------------------+\n| macOS 10.13  | ``-``                             |\n+--------------+-----------------------------------+\n\nPremise\n=======\n``pingparsing`` expects the locale at the ping command execution environment with English.\nParsing the ``ping`` command output with any other locale may fail.\nThis is because the output of the ``ping`` command will change depending on the locale setting.\n\nDocumentation\n===============\nhttps://pingparsing.rtfd.io/\n\nSponsors\n====================================\n|chasbecker| |shiguredo| |b4tman| |Arturi0| |github|\n\n.. |chasbecker| image:: https://avatars.githubusercontent.com/u/44389260?s=48\u0026u=6da7176e51ae2654bcfd22564772ef8a3bb22318\u0026v=4\n   :target: https://github.com/chasbecker\n   :alt: ex-sponsor: Charles Becker (chasbecker)\n.. |shiguredo| image:: https://avatars.githubusercontent.com/u/2549434?s=48\u0026v=4\n   :target: https://github.com/shiguredo\n   :alt: ex-sponsor: 時雨堂 (shiguredo)\n.. |b4tman| image:: https://avatars.githubusercontent.com/u/3658062?s=48\u0026v=4\n   :target: https://github.com/b4tman\n   :alt: onetime: Dmitry Belyaev (b4tman)\n.. |Arturi0| image:: https://avatars.githubusercontent.com/u/46711571?s=48\u0026u=57687c0e02d5d6e8eeaf9177f7b7af4c9f275eb5\u0026v=4\n   :target: https://github.com/Arturi0\n   :alt: onetime: Arturi0\n.. |github| image:: https://avatars.githubusercontent.com/u/9919?s=48\u0026v=4\n   :target: https://github.com/github\n   :alt: onetime: GitHub (github)\n\n`Become a sponsor \u003chttps://github.com/sponsors/thombashi\u003e`__\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthombashi%2Fpingparsing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthombashi%2Fpingparsing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthombashi%2Fpingparsing/lists"}