11

匿名FTPスキャナーを構築しようとしていますが、関数Xの呼び出しでエラーが発生しました。IPアドレスであるony 1引数を受信するようにXを定義しました。ループを使用せずに、同じコードが機能します。 IPを1つずつ。

エラーは次のとおりです。X()は正確に1つの引数を取ります(8が与えられます)

from ftplib import FTP
import ipcalc
from threading import Thread


def X (ip):
    try:
        ftp = FTP(ip)
        x = ftp.login()
        if 'ogged' in  str(x):
            print '[+] Bingo ! we got a Anonymous FTP server IP: ' +ip
    except:
        return


def main ():
    global ip
    for ip in ipcalc.Network('10.0.2.0/24'):
        ip = str(ip)
        t =  Thread (target = X, args = ip)
        t.start()
main ()
4

1 に答える 1

25

Threadオブジェクトを作成するときargsは、引数のシーケンスである必要がありますが、文字列を渡します。これにより、Pythonは文字列を反復処理し、各文字を引数として扱います。

次の1つの要素を含むタプルを使用できます。

t =  Thread (target = X, args = (ip,))

またはリスト:

t =  Thread (target = X, args = [ip])
于 2013-03-03T18:16:36.810 に答える