{"library":"ping3","title":"ping3","description":"ping3 is a pure Python3 library for implementing ICMP ping using raw sockets. It provides a straightforward API to send ICMP echo requests and receive replies, with support for both IPv4 and IPv6, and robust error handling. The library is actively maintained with a regular release cadence, ensuring ongoing compatibility and feature enhancements.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install ping3"],"cli":null},"imports":["from ping3 import ping","from ping3 import verbose_ping","from ping3 import errors"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import ping3\nimport os\n\n# By default, ping() returns False on HostUnknown and None on Timeout.\n# For more detailed error handling, set ping3.EXCEPTIONS = True.\nping3.EXCEPTIONS = True\n\ntry:\n    # Ping a well-known host\n    delay = ping3.ping(\"example.com\", timeout=2)\n    if delay is not None: # delay can be 0.0 (fast) or actual time\n        print(f\"Ping to example.com: {delay:.2f} seconds\")\n    else:\n        print(\"Ping to example.com failed (no reply).\")\n\n    # Example of an unknown host (will raise HostUnknown with EXCEPTIONS=True)\n    # ping3.ping(\"not.exist.com\")\n\n    # Example with a very short TTL (might raise TimeToLiveExpired)\n    # ping3.ping(\"example.com\", ttl=1)\n\nexcept ping3.errors.Timeout:\n    print(\"Ping timed out.\")\nexcept ping3.errors.HostUnknown:\n    print(\"Host unknown or could not be resolved.\")\nexcept ping3.errors.TimeToEndLiveExpired as e: # Catch specific error with new attributes\n    print(f\"Time to live expired. Source: {e.ip_header.get('src_addr', 'N/A')}\")\nexcept ping3.errors.PingError as e: # Catch all other ping3-specific errors\n    print(f\"An ICMP ping error occurred: {e}\")\nexcept OSError as e:\n    # This often indicates permission issues for raw sockets on non-Linux systems or without capabilities.\n    print(f\"OS error during ping: {e}. You might need root privileges or specific capabilities.\")\n    print(\"On Linux, try: sudo setcap cap_net_raw+ep $(eval readlink -f $(which python))\")\n","lang":"python","description":"This quickstart demonstrates basic ICMP ping functionality using `ping3.ping()`. It includes best practices for robust error handling by enabling `ping3.EXCEPTIONS = True` and catching various `ping3.errors` subclasses. It also highlights common `OSError`s related to raw socket permissions.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"5.1.5","pypi_latest":"5.1.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.5,"avg_import_s":0.04,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.7,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.02,"mem_mb":1.7,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.06,"mem_mb":1.8,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.05,"mem_mb":1.8,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.6,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.05,"mem_mb":1.6,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.9,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.04,"mem_mb":1.7,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ping3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"18M"}]}}