Ошибки Python Socket - PullRequest
       38

Ошибки Python Socket

0 голосов
/ 21 мая 2018
#!/usr/bin/python

import socket
import argparse
import os.path

parser = argparse.ArgumentParser(description='Scan for open ports on given 
hostname or ip address')
parser.add_argument('-H','--HOST', help ="Enter a hostname or Ip Address")
args = parser.parse_args()

    def find_port(PORT,HOST):
        data = ('\r\nSuccessful Connections were made at host {} on port {}'.format(HOST, PORT))
        originalfile = ("Data Log.txt")

       s = socket.socket()
       socket.setdefaulttimeout(1)

        try:
           s.connect((HOST, PORT))
           print '[+] Successful connection on ',PORT

        except:
           print '[+] Connection failure on port ',PORT

       if os.path.exists(originalfile) is True:
           if s.connect((HOST, PORT)):
               with open (originalfile, "w") as currentfile:
                    currentfile.write(data)
                    currentfile.close()

       elif os.path.exists(originalfile) is False:
            if s.connect((HOST, PORT)):
               with open("Data Log.txt","w+") as newfile:
                    newfile.write(data)
                    newfile.close()


    if __name__=='__main__':
       for i in range(1024):
            find_port(i, args.HOST)

я продолжаю получать эти ошибки.Все, что я пытаюсь сделать, это перехватить успешное соединение с портом и зарегистрировать его внутри текстового файла, но я продолжаю получать эти ошибки.

[+] Ошибка подключения к порту 0 Traceback (последний вызов был последним): Файл "./poo2.py", строка 44, в find_port (i, args.HOST) Файл "./poo2.py", строка 30, в find_port, если s.connect ((HOST, PORT)): Файл "/usr/lib/python2.7/socket.py", строка 228, в метадане return getattr (self._sock, name) (* args) socket.error: [Errno 99] Невозможно назначить запрошенный адрес

1 Ответ

0 голосов
/ 21 мая 2018

Не ясно, чего вы пытаетесь достичь с помощью своего кода.Но вы сначала создаете сокет, затем подключаете его к месту назначения, а затем пытаетесь подключить его снова.Это второе подключение не имеет смысла и приведет к ошибке, поскольку сокет может быть подключен только один раз.

...