Skip to content
This repository has been archived by the owner on Nov 22, 2023. It is now read-only.

[Feature Request] 建议 nexttrace 可以将 ping 与 traceroute 结合,实时观测到各个 hop 的延迟等相关信息 #10

Open
SunBK201 opened this issue Aug 28, 2022 · 4 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@SunBK201
Copy link
Contributor

mtr 一样,可以实时观测当前的 IP 到所有的这些 hop 的平均延迟和丢包率等相关信息。
image

@SunBK201 SunBK201 changed the title [Feature Request] 建议 nexttrace 可以将 ping 与 traceroute 结合,实时观测到各个 hop 的延迟信息 [Feature Request] 建议 nexttrace 可以将 ping 与 traceroute 结合,实时观测到各个 hop 的延迟等相关信息 Aug 28, 2022
@sjlleo
Copy link
Collaborator

sjlleo commented Aug 28, 2022

Hi SunBK201,

这个玩意儿可能会被叫做 NextMTR 独立成项目,因为 NextTrace 在编写之初没有按照 MTR 的逻辑去编写,所以如果现在要改的话,底层逻辑要全部大改,会导致已经非常稳定的 NextTrace 再次回归 Bug 满天飞的 Alpha 版本。

另外,做 MTR 最大的难点在于终端窗口的实时刷新,每次要对终端的内容清空并重新绘制,样式也比较难控制,每个字符在终端的位置不能每次刷新都乱跑,所以要单独创建一个专门用于终端显示控制的模块。

非常感谢

@sjlleo sjlleo added enhancement New feature or request help wanted Extra attention is needed labels Aug 28, 2022
@sjlleo
Copy link
Collaborator

sjlleo commented Jan 13, 2023

以下是 Alpha Preview Version

image

mtr 版本现在已经有了 Alpha 版本,目前还是有很多需要细节完善的地方,暂时不能开放公测,如果感兴趣,欢迎来尝鲜。

@SunBK201
Copy link
Contributor Author

以下是 Alpha Preview Version

image

mtr 版本现在已经有了 Alpha 版本,目前还是有很多需要细节完善的地方,暂时不能开放公测,如果感兴趣,欢迎来尝鲜。

我很乐意参与 Alpha 版本的测试,如果可以我想尝试下。

@tsosunchia
Copy link
Collaborator

tsosunchia commented Jan 21, 2023

以下是 Alpha Preview Version

image

mtr 版本现在已经有了 Alpha 版本,目前还是有很多需要细节完善的地方,暂时不能开放公测,如果感兴趣,欢迎来尝鲜。

我也想测试一下,如果可以请发到我邮箱(tsosunchia#gmail.com)。
另外对于web api,我有个小建议:
增加对于域名的支持
image

可以考虑使用阿里的DOH(不使用GOOGLE的DOH主要考虑国内网络环境)实现来减少工作量

package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://dns.alidns.com/resolve?name=ip.sb&type=28"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

结果:

{
    "Status": 0,
    "TC": false,
    "RD": true,
    "RA": true,
    "AD": false,
    "CD": false,
    "Question": {
        "name": "ip.sb.",
        "type": 28
    },
    "Answer": [
        {
            "name": "ip.sb.",
            "TTL": 253,
            "type": 28,
            "data": "2606:4700:20::681a:d1f"
        },
        {
            "name": "ip.sb.",
            "TTL": 253,
            "type": 28,
            "data": "2606:4700:20::681a:c1f"
        },
        {
            "name": "ip.sb.",
            "TTL": 253,
            "type": 28,
            "data": "2606:4700:20::ac43:4bac"
        }
    ]
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants