我们在本地主机端口ngrok上运行了http://localhost:4000。我们可以手动测试ngrok是否已经运行,使用以下步骤:
如果连接成功,将显示以下视觉效果:
如果没有显示上述视觉效果,则ngrok根本没有运行。
如果未显示上述视觉效果,则ngrok未在PORT 4000上运行。
要在http://localhost:4000上启动ngrok,我们需要运行ngrok http 4000
。运行此命令后,将显示上述视觉效果。
是否有一些programmatic way来确定ngrok是否已在端口上运行?
答案 0 :(得分:1)
运行此命令以查看使用端口:
sudo lsof -PiTCP -sTCP:LISTEN
答案 1 :(得分:1)
您可以通过python检查:
import socket;
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('127.0.0.1',4000))
print(result)
if result == 0:
print "Port is not open"
else:
print "Port is open"
P.S。如果端口正在使用,则结果为0,否则为61.
答案 2 :(得分:1)
运行netstat -tulnap | grep ngrok
netstat -tulnap显示计算机上正在运行的进程 用于ngrok进程的grep ngrok过滤器。
答案 3 :(得分:1)
对于其他被这个问题绊倒的人, 使用curl或您选择的编程语言的任何请求库向http://localhost:4040/api/tunnels发出请求。它返回ngrok隧道及其URL的JSON格式响应,您可以获取该响应。如果未返回任何内容,则表明ngrok没有运行
例如python:
import requests
import json
from bs4 import BeautifulSoup
req = requests.get('http://127.0.0.1:4040/api/tunnels')
soup = BeautifulSoup(req.text, 'lxml')
tunnelsjson = json.loads(soup.find('p').text)
url = tunnelsjson['tunnels'][0]['public_url']
print(url)