【问题标题】:Is it possible to ping local adresses in Angular ? (like in terminal)是否可以在 Angular 中 ping 本地地址? (如在终端)
【发布时间】:2021-03-18 18:28:56
【问题描述】:

我正在寻找一种方法来 ping 我的网络上的本地设备,例如我在终端中使用 de ping 命令来 ping 我的路由器或任何其他连接的设备。 我已经找到了 ping 像 google.com 这样的服务器的方法,但它似乎不适用于本地地址。 这可能吗? 这是我的打字稿代码:


private source = interval(3000);

  constructor(private _http: HttpClient) { }

...


getStatutDevice(ip: string){

    //IP Value look like "192.168.1.20" for example

    this.source.subscribe(() => {
      this._http.get(ip, { observe: 'response' })
        .pipe(first())
        .subscribe(resp => {
          if (resp.status === 200 ) {
            console.log(true);
          } else {
            console.log(false);
          }
        }, err => console.log(err));
    });
}

我在控制台中收到此错误:

zone-evergreen.js:2863 GET http://localhost:4200/192.168.1.20 404(未找到)

如果我在 IP 地址前加上“https://”,我得到:

GET https://192.168.1.20/net::ERR_CONNECTION_REFUSED

我不知道找到解决方案意味着什么。

【问题讨论】:

标签: angular typescript ping


【解决方案1】:

有这个打字稿utility。它提供了发送 tcp ping 的能力。

【讨论】:

  • 感谢您的快速回答!我会检查的!
  • 这个打字稿实用程序似乎只适用于node.js,但不适用于浏览器。我看到出于安全原因,无法从浏览器中 ping 本地地址。我不知道这是不是真的,如果有替代方案。我想从我的 Angular 应用程序 ping 我的本地设备
  • 您可以创建一个服务器端服务并使用来自您的 Angular 应用程序的 http 请求调用它。可能,这比尝试直接从浏览器 ping 更简单。
【解决方案2】:

您无法在浏览器中执行 ICMP Ping(“就像在终端中一样”)。任何尝试都将是 tcp 或 http get 请求。

【讨论】:

  • 感谢您的快速答复! Http get 可以这样ping 吗?
  • 您可以进行 http GET,但如果另一端没有网络服务器,您将得不到响应。路由器通常在 LAN 端有一个网络服务器,这样应该可以工作。但是很多其他设备,例如手机或台式机,通常不会运行网络服务器,因此您总是会得到否定的响应。
猜你喜欢
  • 1970-01-01
  • 2018-12-04
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多