Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2018 22:20:24

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

Проброс портов

Доброго времени суток, заинтриговал вопрос, заключается он в пробросе портов , роутер у меня huawei HG8245H.
У нас есть два компьютера , каждый подключен к интернету через свои роутер, хотим передать сообщения через сокет с одного компьютера на другой.

 import socket
HOST = ''                 # Что нужно указать в качестве хоста???
PORT = 9090              # Arbitrary non-privileged port
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen(1)
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data: break
           conn.sendall(data)
 import socket
HOST = '188.19.108.47'    # Сюда прописываем внешний ip (сайт - [url=2ip.ru]Your text to link here...[/url])
PORT = 9090              # The same port as used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Hello, world')
    data = s.recv(1024)
print('Received', repr(data))
Пытались пробросить порт 9090 в роутере, попытка не увенчалась успехом.В какую сторону дальше рыть?

Офлайн

#2 Окт. 3, 2018 01:38:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Проброс портов

sosok43k
Что нужно указать в качестве хоста?
0.0.0.0



Офлайн

#3 Окт. 3, 2018 09:25:36

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Проброс портов

sosok43k
Пытались пробросить порт 9090 в роутере, попытка не увенчалась успехом.В какую сторону дальше рыть?
в каком смысле “попытка не увенчалась успехом”? не удалось пробросить порты или проброс удался но скрипт не работает?
sosok43k
Что нужно указать в качестве хоста???
ничего не нужно, так и оставте '' тогда сервер будет доступен для всех интерфейсов. Или впишите 0.0.0.0 как советует py.user.next что вобщем-то равнозначно.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Окт. 3, 2018 11:49:42

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Проброс портов

> Сюда прописываем внешний ip

ip статический?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Окт. 4, 2018 01:16:48

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

Проброс портов

Rodegast
>ip статический?
Нет, динамический

Офлайн

#6 Окт. 4, 2018 11:01:05

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Проброс портов

> Нет, динамический

Тогда эти машины скорей всего за провайдерским NAT-ом сидят. Обе машины друг друга пингуют?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Окт. 4, 2018 11:02:01

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Проброс портов

sosok43k
HOST = ‘188.19.108.47’ # Сюда прописываем внешний ip
так надо прописывать адрес принимающей машины то есть сервера а не свой. для этого сервер должен получить свой ip и как то передать хосту. я делал так. на машине с сервром установлен яндекс диск и в его папке файл тхт на который имеется ссылка для доступа по сети. при запуске сервер получает свой внешний ip и перезаписывает в файл. хост при запуске обращается к файлу по известной ссылке читает ip и уже по нему подключается. после настройки проброса порта запустите сервер и проверьте а доступен ли порт на том же
2ip.ru

Отредактировано marvellik (Окт. 4, 2018 11:04:32)

Офлайн

#8 Окт. 4, 2018 22:15:09

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

Проброс портов

Rodegast
Обе машины друг друга пингуют?
Нет

Офлайн

#9 Окт. 5, 2018 00:19:32

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Проброс портов

1) отладьте Ваш код на машин в пределах одной сети (даже localhost)
2) решите проблемы сетевого доступачерез пинги и/или http запросы
3) запустите Ваш код на разных машинах



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Окт. 5, 2018 10:51:27

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Проброс портов

> Нет

Ну значит NAT его режет. У тебя должен быть хотя бы один статический адрес что бы оно заработало.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version