2013-03-03 28 views
9

Tôi đang cố gắng bẻ khóa máy quét FTP ẩn danh, nhưng tôi đã gặp lỗi về chức năng gọi X, tôi đã xác định X để nhận được 1 cuộc tranh cãi là ip địa chỉ, cùng một mã hoạt động nếu tôi không sử dụng vòng lặp và gửi IP từng cái một.Lỗi Python: X() lấy chính xác 1 đối số (8 đã cho)

Lỗi này là: X() có chính xác 1 lập luận (8 cho)

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() 

Trả lời

16

Khi xây dựng Thread đối tượng, args phải là một chuỗi các đối số, nhưng bạn đang đi qua trong một chuỗi. Điều này làm cho Python lặp qua chuỗi và xử lý từng ký tự như một đối số.

Bạn có thể sử dụng một tuple chứa một phần tử:

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

hoặc một danh sách:

t = Thread (target = X, args = [ip]) 
+0

Bingo, nhờ một triệu – Hussam

+1

@Hussam - nhấn check-mark. – Malvolio

Các vấn đề liên quan