ネットワークに接続されているすべてのライブ IP を最速の方法で印刷しようとしています。for ループで ping を実行しようとしましたが、非常に遅いです。
def PingTry(host):
ping = subprocess.Popen(["ping", host], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, error = ping.communicate()
print out #This will show me the ping result, I can check the content and see if the host replyed or not
私が言ったように、それは非常に遅いです (これを 255 回行う必要があります)。
ポート80でTCP接続を使用して接続しようとしました:
import socket
IP = '192.168.1.100'
PORT = 80
tcpsoc = socket(AF_INET, SOCK_STREAM)
tcpsoc.listen(SOMAXCONN)
try:
tcpsoc.bind(ADDR)
except Exception,ex:
print "host is down!"
ただし、ルーターIPでは機能していますが、このIPでは機能しません
すべてのライブ IP をより速く取得する方法はありますか?