ブログ

割とコンピュータよりの情報をお届けします。

Pythonでポートスキャン

Pythonでポートスキャンをする方法が載っていたので試してみた。

ポートスキャンは時間がかかると思っていたが、一つ一つの処理はそんなでもないが、tcpで通信する分タイムアウトを待って応答を返しているのでシリーズで処理すると時間がかかるようだ。

一応マルチスレッドで並列処理してみた。

import socket
import threading

scan_range = [1, 2000];

host = "localhost";

threads = [];
ports = [];
isopen = [];

def Run(port, i):
    con = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    return_code = con.connect_ex((host, port))
    con.close()

    if return_code == 0:
        isopen[i] = 1;
    
    
count = 0;
for port in range(scan_range[0], scan_range[1]):
    ports.append(port);
    isopen.append(0);
    thread = threading.Thread(target=Run, args=(port, count));
    thread.start();
    threads.append(thread);
    count = count + 1;

for i in range(len(threads)):
    threads[i].join();
    if isopen[i] == 1:
        print("%d open" % ports[i]);
2018/04/05 コンピュータ   TakeMe
< 前の記事     一覧へ     後の記事 >

コメント送信フォーム


※ Eメールは公開されません
Loading...
 画像の文字を入力してください