Python Ping3
Need a Litte Ping Function ?
Test
cat <<'EOF'> ping.py
import argparse
from ping3 import ping, verbose_ping
def do_ping(host: str, timeout: int = 3, size: int = 1500, output: str = "json"):
# output: json|txt
# '21.54 ms'
if size > 1500:
size = 1500
result = (
str(
round(
ping(dest_addr=host, timeout=timeout, size=size, unit="ms"),
2,
)
)
+ " ms"
)
if output.lower() == "json":
return {"host": host, "timeout": timeout, "size": size, "result": result}
if output.lower() == "txt":
return result
else:
return f"output format '{output} unknown! use 'json|txt'"
def do_multiple_ping(host: str, count: int = 3, interval: float = 0):
# ping 'www.stoege.net' ... 23ms
# ping 'www.stoege.net' ... 24ms
# ping 'www.stoege.net' ... 20ms
verbose_ping(
dest_addr=host,
count=count,
interval=interval,
)
def main():
# Create the argument parser
parser = argparse.ArgumentParser(description="Ping a domain or IP address.")
# Add the host argument
parser.add_argument(
"host",
metavar="HOST",
type=str,
nargs="?",
default="www.stoege.net",
help="the domain or IP address to ping",
)
# Parse the command-line arguments
args = parser.parse_args()
# Call the ping function
output = do_ping(host=args.host, output="json")
# Print the ping output
print(f"\n{output}\n")
# Call the ping function. No return Value !
do_multiple_ping(host=args.host, count=10, interval=0.1)
if __name__ == "__main__":
main()
EOF
add module
poetry, venv, whatever you like