Pythonスクリプトのforループを高速化する

user857990

あなたがこのようなものを手に入れたと仮定します(ここからコピーされます):

#!/usr/bin/python
from scapy.all import *

TIMEOUT = 2
conf.verb = 0
for ip in range(0, 256):
    packet = IP(dst="192.168.0." + str(ip), ttl=20)/ICMP()
    reply = sr1(packet, timeout=TIMEOUT)
    if not (reply is None):
         print reply.src, "is online"
    else:
         print "Timeout waiting for %s" % packet[IP].src

次のホストを試す前に、各pingが終了するのを待つ必要はありません。私はの線に沿って背景にループ内部を毎回入れることができます&で:

for ip in 192.168.0.{0..255}; do 
ping -c 1 $ip &
done
ヨルダン

最初にすべきことは、範囲をrange(0, 256)0〜255を含むように変更することです。

次に、Pythonのスレッド化を確認しています。これは、抽象レベルでのBashプロセスのデーモン化にいくらか似ている可能性があります。

マルチプロセッシングをインポートしてプールを作成します。

from multiprocessing.pool import ThreadPool
pool = ThreadPool(20)  # However many you wish to run in parallel

したがって、forループ内のすべてであるpingルックアップを取得し、それを関数にします。

def ping(ip):
    packet = IP(dst="192.168.0." + str(ip), ttl=20)/ICMP()
    reply = sr1(packet, timeout=TIMEOUT)
    if not (reply is None):
         print reply.src, "is online"
    else:
         print "Timeout waiting for %s" % packet[IP].src

次に、forループで、

for ip in range(0, 256):
    pool.apply_async(ping, (ip,))

pool.close()
pool.join()

pool.join() これは、すべてのスレッドが戻るのを待つものです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このPyMongoクエリ/ループを高速化する方法

分類Dev

PowerShellスクリプトを高速化する必要がある

分類Dev

Pythonのネストされたループを高速化

分類Dev

クロールプロセスを高速化する

分類Dev

Python関数の「for」ループを高速化する方法は?

分類Dev

Pythonでネストされたforループを高速化する方法

分類Dev

Python DataFrameでネストされたループを高速化する方法は?

分類Dev

PHPでループ内の単一クエリを高速化する方法は?

分類Dev

groupbymultiindexのネストされたループを高速化する方法

分類Dev

groupbymultiindexのネストされたループを高速化する方法

分類Dev

forループで複数のインスタンスを開始することにより、bashスクリプトを高速化します

分類Dev

Pythonでのベクトル化などにより、ネストされたループの実行を高速化する

分類Dev

Rでプログラムを高速化するためのforループのベクトル化

分類Dev

AlphaNumericコードの大きなテーブルを作成するSQLスクリプトを高速化する方法

分類Dev

このコードのビットを高速化するにはどうすればよいですか(ループ/リスト/タプルの最適化)?

分類Dev

リストする行ごとのデータフレームのグループ化が高速化

分類Dev

Pythonスクリプトを介してAWSPostgreSQLの挿入を高速化

分類Dev

MySQLのパフォーマンス-ビルドアップ/バーンダウンチャートのクエリを高速化する方法は?

分類Dev

実行を高速化するためのforeachオブジェクトスクリプトの代替

分類Dev

ベクトル化により、RでトリプルネストされたForループを高速化

分類Dev

Pythonスクリプトを高速化するか、代替手段を見つけますか?

分類Dev

Pythonスクリプトを高速化するにはどうすればよいですか?

分類Dev

条件文でPythonのネストされたループを高速化

分類Dev

スクリプトを高速化して、特定の条件を満たす行を非表示にする方法

分類Dev

Pythonでforループを高速化するためのnumpy.argwhereの代替

分類Dev

GKEのローリングアップデートを高速化する方法

分類Dev

Pythonでこのループを高速化することは可能ですか?

分類Dev

このループコードを高速化する方法は?

分類Dev

文字列内のバイトを反復処理するMSACCESSVBAスクリプトを高速化

Related 関連記事

  1. 1

    このPyMongoクエリ/ループを高速化する方法

  2. 2

    PowerShellスクリプトを高速化する必要がある

  3. 3

    Pythonのネストされたループを高速化

  4. 4

    クロールプロセスを高速化する

  5. 5

    Python関数の「for」ループを高速化する方法は?

  6. 6

    Pythonでネストされたforループを高速化する方法

  7. 7

    Python DataFrameでネストされたループを高速化する方法は?

  8. 8

    PHPでループ内の単一クエリを高速化する方法は?

  9. 9

    groupbymultiindexのネストされたループを高速化する方法

  10. 10

    groupbymultiindexのネストされたループを高速化する方法

  11. 11

    forループで複数のインスタンスを開始することにより、bashスクリプトを高速化します

  12. 12

    Pythonでのベクトル化などにより、ネストされたループの実行を高速化する

  13. 13

    Rでプログラムを高速化するためのforループのベクトル化

  14. 14

    AlphaNumericコードの大きなテーブルを作成するSQLスクリプトを高速化する方法

  15. 15

    このコードのビットを高速化するにはどうすればよいですか(ループ/リスト/タプルの最適化)?

  16. 16

    リストする行ごとのデータフレームのグループ化が高速化

  17. 17

    Pythonスクリプトを介してAWSPostgreSQLの挿入を高速化

  18. 18

    MySQLのパフォーマンス-ビルドアップ/バーンダウンチャートのクエリを高速化する方法は?

  19. 19

    実行を高速化するためのforeachオブジェクトスクリプトの代替

  20. 20

    ベクトル化により、RでトリプルネストされたForループを高速化

  21. 21

    Pythonスクリプトを高速化するか、代替手段を見つけますか?

  22. 22

    Pythonスクリプトを高速化するにはどうすればよいですか?

  23. 23

    条件文でPythonのネストされたループを高速化

  24. 24

    スクリプトを高速化して、特定の条件を満たす行を非表示にする方法

  25. 25

    Pythonでforループを高速化するためのnumpy.argwhereの代替

  26. 26

    GKEのローリングアップデートを高速化する方法

  27. 27

    Pythonでこのループを高速化することは可能ですか?

  28. 28

    このループコードを高速化する方法は?

  29. 29

    文字列内のバイトを反復処理するMSACCESSVBAスクリプトを高速化

ホットタグ

アーカイブ