ngrok检索分配的子域

Owe*_*wen 7 node.js ngrok

我有一个NodeJS脚本,它会启动一个ngrok实例,启动ngrok二进制文件.

但是我需要能够返回自动生成的URL.我在文档中找不到有关如何执行此操作的任何内容.

例如,当你运行ngrok http 80它旋转时,每次启动时都会生成一个随机的唯一URL

在此输入图像描述

小智 6

这个问题有点老了,但是,我想提供另一个更通用的选项,因为它不需要 NodeJS

curl --silent --show-error http://127.0.0.1:4040/api/tunnels | sed -nE 's/.*public_url":"https:..([^"]*).*/\1/p'
Run Code Online (Sandbox Code Playgroud)

api/tunnels这个只是通过对结果文本应用文本处理 ( )来检查调用的响应sed并识别公共 URL。


mro*_*ach 5

ngrok 在 处提供隧道信息http://localhost:4040/api/tunnels。

卷曲+jq

curl -Ss http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url'

=> https://719c933a.ap.ngrok.io
Run Code Online (Sandbox Code Playgroud)

卷曲+红宝石

curl -Ss http://localhost:4040/api/tunnels | \
  ruby -e 'require "json"; puts JSON.parse(STDIN.read).dig("tunnels", 0, "public_url")'

=> https://719c933a.ap.ngrok.io
Run Code Online (Sandbox Code Playgroud)

卷曲+节点

json=$(curl -Ss http://127.0.0.1:4040/api/tunnels);
node -pe "var data = $json; data.tunnels[0].public_url"

=> https://719c933a.ap.ngrok.io
Run Code Online (Sandbox Code Playgroud)