Существуют ли простые описания перенаправления портов с использованием python?

Я могу просто подключать сокеты на одном компьютере, используя

сервер:

import socket s = socket.socket() host = socket.socket() port = 8000 s.bind((host,port)) s.listen(5) while true: c,addr = s.accept() print 'got connection from', addr c.send('thank you for connecting') c.close() 

клиент:

 import socket s = socket.socket() host=socket.gethostname() port = 8000 s.connect((host,port)) print s.recv(1024) 

Какие изменения необходимо будет сделать, если это связано между моим ноутбуком и частным сервером, над которым я работаю? Я понял из своих поисков, что portforwarding – лучший способ сделать это, но не нашел никаких объяснений или руководств о том, как это сделать.

Спасибо

2 Solutions collect form web for “Существуют ли простые описания перенаправления портов с использованием python?”

Если вам нужна реализация переадресации портов Python, существует старый, но отличный рецепт ActriveState, который реализует асинхронный сервер переадресации портов, используя только стандартную библиотеку Python (socket, asyncore). Вы можете ткнуть на code.activestate.com .

PS Также есть ссылка на поточную версию скрипта.

Если вам действительно не нужно это делать в python, просто используйте netcat: –

http://netcat.sourceforge.net/

Перенаправление портов или сопоставление портов В Linux NetCat может использоваться для переадресации портов. Ниже перечислены девять способов переадресации портов в NetCat (ключ -c не поддерживается, но они работают с реализацией ncat netcat):

 nc -l -p port1 -c ' nc -l -p port2' nc -l -p port1 -c ' nc host2 port2' nc -l -p port1 -c ' nc -u -l -p port2' nc -l -p port1 -c ' nc -u host2 port2' nc host1 port1 -c ' nc host2 port2' nc host1 port1 -c ' nc -u -l -p port2' nc host1 port1 -c ' nc -u host2 port2' nc -u -l -p port1 -c ' nc -u -l -p port2' nc -u -l -p port1 -c ' nc -u host2 port2' 

Источник: – http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping

Обычно он используется в большинстве дистрибутивов * nix, а также есть порт Win32:

http://www.stuartaxon.com/2008/05/22/netcat-in-windows/

  • Как поймать это исключение Python: ошибка: Существующее соединение было принудительно закрыто удаленным хостом
  • Как (в какой форме) передать (доставить) функцию Python?
  • Как удалить сокет в python?
  • Сервер / клиентское приложение TimeoutError on LAN
  • socket.gaierror: Имя или услуга неизвестны
  • Обработка ошибки тайм-аута в сокетах python
  • Почему сокеты закрыты в понимании списка, но не для цикла?
  • select.select () не улавливает исключительные условия на сокет?
  • Python - лучший язык программирования в мире.