2016-12-23 2 views
0

Я новичок в Python и я пытаюсь выполнить этот кусок кода импорта Цоколь:Python - Соединение не может быть сделано, потому что целевая машина активно отказалась его

import socket 
def retBanner(ip, port): 
    try: 
     socket.setdefaulttimeout(2) 
     s = socket.socket() 
     s.connect((ip,port)) 
     banner = s.recv(1024) 
     return banner 
    except Exception as e: 
     return str(e) 

def main(): 
    ip1 = '10.0.0.12' 
    ip2 = '10.0.0.11' 
    port = 21 

banner1 = retBanner(ip1, port) 
if banner1: 
    print('[+] ' + ip1 + ': ' + banner1) 

banner2 = retBanner(ip2, port) 
if banner2: 
    print("[+] " + ip2 + ': ' + banner2) 

if __name__ == '__main__': 
    main() 

Даже если я просто попробовать в оболочки,

>>> import socket 
>>> socket.setdefaulttimeout(2) 
>>> s = socket.socket() 
>>> s.connect(("10.0.0.12",21)) 

он бросает следующее исключение

[+] 10.0.0.12: [WinError 10061] No connection could be made because the target machine actively refused it 

Я хотел бы знать, почему, у меня Firewal ls off ..

Поздравления!

+0

'banner1 = retBanner (ip1, port)', banner2 = retBanner (ip2, port) hold on, ваш уровень доступа не разрешает «TCP-соединение типа RAW». '.11 и .12' - это тот же самый компьютер, но тот же интерфейс? Другим моментом является порт '21', не означающий« Blackjack », это глобальный порт, опубликованный как FTP-порт, нужно закрыть все приложение (которое использовало порт 21) и работать от root! – dsgdfg

ответ

0

WinError 10061 - означает, что TCP на стороне сервера не принимает соединение. Поскольку приложение не прослушивает этот порт, к которому пытается подключиться клиент. Проверьте, запущено ли ваше серверное приложение и что он прослушивает предполагаемый порт.

0

Я бы поставил это как простой комментарий, но SO не позволяет это, так как я новый пользователь с небольшой репутацией. У вас есть прокси-сервер, который может быть отключен? Кроме того, вы должны указать, какая версия Python это.

После запуска, я обнаружил, что я получил ошибку

"banner1 = retBanner(ip1, port) NameError: name 'ip1' is not defined"

, так как вы только определить его внутри «основной», а не на глобальном уровне (за пределами описание функции).

Смежные вопросы

 Смежные вопросы