Найти - Пользователи
Полная версия: Проброс портов
Начало » Центр помощи » Проброс портов
1
sosok43k
Доброго времени суток, заинтриговал вопрос, заключается он в пробросе портов , роутер у меня 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 в роутере, попытка не увенчалась успехом.В какую сторону дальше рыть?
py.user.next
sosok43k
Что нужно указать в качестве хоста?
0.0.0.0
PEHDOM
sosok43k
Пытались пробросить порт 9090 в роутере, попытка не увенчалась успехом.В какую сторону дальше рыть?
в каком смысле “попытка не увенчалась успехом”? не удалось пробросить порты или проброс удался но скрипт не работает?
sosok43k
Что нужно указать в качестве хоста???
ничего не нужно, так и оставте '' тогда сервер будет доступен для всех интерфейсов. Или впишите 0.0.0.0 как советует py.user.next что вобщем-то равнозначно.
Rodegast
> Сюда прописываем внешний ip

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

Тогда эти машины скорей всего за провайдерским NAT-ом сидят. Обе машины друг друга пингуют?
marvellik
sosok43k
HOST = ‘188.19.108.47’ # Сюда прописываем внешний ip
так надо прописывать адрес принимающей машины то есть сервера а не свой. для этого сервер должен получить свой ip и как то передать хосту. я делал так. на машине с сервром установлен яндекс диск и в его папке файл тхт на который имеется ссылка для доступа по сети. при запуске сервер получает свой внешний ip и перезаписывает в файл. хост при запуске обращается к файлу по известной ссылке читает ip и уже по нему подключается. после настройки проброса порта запустите сервер и проверьте а доступен ли порт на том же
2ip.ru
sosok43k
Rodegast
Обе машины друг друга пингуют?
Нет
JOHN_16
1) отладьте Ваш код на машин в пределах одной сети (даже localhost)
2) решите проблемы сетевого доступачерез пинги и/или http запросы
3) запустите Ваш код на разных машинах
Rodegast
> Нет

Ну значит NAT его режет. У тебя должен быть хотя бы один статический адрес что бы оно заработало.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB