asyncio subprocess#
import asyncio
async def ping(ip):
reply = await asyncio.create_subprocess_shell(
f"ping -c 3 -n {ip}",
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
)
stdout, stderr = await reply.communicate()
ip_is_reachable = reply.returncode == 0
return ip_is_reachable
async def ping_ip_list(ip_list):
coroutines = [ping(ip) for ip in ip_list]
result = await asyncio.gather(*coroutines)
return result
if __name__ == "__main__":
ip_list = ["192.168.100.1", "192.168.100.2", "192.168.100.3", "192.168.100.11"]
results = asyncio.run(ping_ip_list(ip_list))
print(results)