Чтобы создать ссылку с помощью ngrok с помощью командной строки (cmd) во время работы туннеля ngrok, вы можете выполнить следующие действия:
Шаг 1. Установите ngrok
Если вы еще этого не сделали, загрузите и установите ngrok с официального сайта ( https://ngrok.com/ ). Обязательно добавьте ngrok в переменную PATH вашей системы, чтобы можно было запускать его из командной строки.
Шаг 2. Запустите туннель ngrok
Откройте окно командной строки и перейдите в каталог, в котором установлен ngrok. Выполните следующую команду, чтобы запустить ngrok, и укажите порт, который вы хотите предоставить:
ngrok http <port>
Замените <port>
номером порта вашего локального сервера или приложения. Например, если ваше приложение работает на порту 3000, вам следует использовать ngrok http 3000
.
Шаг 3. Получите ссылку ngrok
После запуска команды ngrok вы увидите, что ngrok генерирует URL-адрес для пересылки. Это будет выглядеть примерно так:
Forwarding http://abcdefg.ngrok.io -> http://localhost:<port>
URL-адрес http://abcdefg.ngrok.io
— это ссылка, созданная ngrok, которую вы можете использовать для доступа к локальному серверу или приложению из Интернета.
Метод 1: Захват ссылки ngrok с использованием вывода CMD
Вы можете захватить ссылку ngrok, проанализировав вывод командной строки. Вот пример на Python:
import subprocess
import re
def get_ngrok_link():
result = subprocess.run(['ngrok', 'http', '<port>'], capture_output=True, text=True)
output = result.stdout.strip()
match = re.search(r'Forwarding\s+(http://\S+)\s+->', output)
if match:
return match.group(1)
return None
ngrok_link = get_ngrok_link()
if ngrok_link:
print("Ngrok link:", ngrok_link)
else:
print("Failed to get ngrok link.")
Замените <port>
фактическим номером порта, который вы используете.
Метод 2: использование API ngrok
Ngrok предоставляет RESTful API, который позволяет программно получать доступ к функциям ngrok. Вы можете использовать API, чтобы получить ссылку на ngrok. Вот пример использования библиотеки Python requests
:
import requests
def get_ngrok_link():
response = requests.get('http://localhost:4040/api/tunnels')
if response.status_code == 200:
data = response.json()
tunnels = data.get('tunnels', [])
for tunnel in tunnels:
if tunnel['proto'] == 'http':
return tunnel['public_url']
return None
ngrok_link = get_ngrok_link()
if ngrok_link:
print("Ngrok link:", ngrok_link)
else:
print("Failed to get ngrok link.")
Обратите внимание, что для работы этого метода вам необходимо запустить ngrok с включенным веб-интерфейсом. Вы можете включить веб-интерфейс, добавив флаг --webui
при запуске ngrok.