V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wxy1991
V2EX  ›  Python

一个域名解析出来多个 ip,怎么断定哪个 ip 访问最快

  •  
  •   wxy1991 · 2020-09-30 16:45:18 +08:00 · 6089 次点击
    这是一个创建于 1548 天前的主题,其中的信息可能已经有所发展或是发生改变。

    迫于访问 gayhub 速度太慢,下载代码要几十分钟,就想搞一个自动检测最快 ip,然后及时修改 hosts 文件的脚本,问题来了,我该怎么判断哪个 ip 是访问最快的 ip 呢,是判断 ttl 值么还是有其他的策略。( ps:小弟在学习 python 中,有很多好用的包不知道,如果有好用的包,希望大佬顺手推荐个)

    38 条回复    2020-10-02 13:12:52 +08:00
    goodryb
        1
    goodryb  
       2020-09-30 16:50:34 +08:00
    挂个代理最快了
    masker
        2
    masker  
       2020-09-30 16:53:24 +08:00 via Android
    挂代理这么难吗。买一个代理很贵吗
    DogBear
        3
    DogBear  
       2020-09-30 16:56:04 +08:00
    再多 ip 也都差不多,不如挂个代理
    wxy1991
        4
    wxy1991  
    OP
       2020-09-30 16:57:07 +08:00
    @masker 我在学 python 呢,就是想上手练习个小项目,兄弟别戾气这么大,如果写完效果好的话我会在 v2 分享出来的
    wafm
        5
    wafm  
       2020-09-30 16:57:38 +08:00
    延迟低不一定速率就快的,

    如果你非要根据 PING 来,这个也好写啊,获取到多个 IP 之后你就批量 PING 一下取最小值,写入你的 HOSTS 就好了
    wxy1991
        6
    wxy1991  
    OP
       2020-09-30 17:04:43 +08:00
    @wafm 嗯,我试一下这个方案,先取 ttl 最小的前 20 个 ip,然后再批量 ping 一下,取 ttl 和 ping 结果都比较小的 ip 试试
    zictos
        7
    zictos  
       2020-09-30 17:07:15 +08:00
    ping,然后取延时最小的,丢包(超时)最少的。

    也可以找一个文件专门用于测试下载速度
    masker
        8
    masker  
       2020-09-30 17:10:08 +08:00 via Android
    @wxy1991 找个好的代理比 hosts 方便很多
    Jacky23333
        9
    Jacky23333  
       2020-09-30 17:11:52 +08:00 via Android
    @wxy1991 难道不是应该取 ttl 大的吗
    Atukey
        10
    Atukey  
       2020-09-30 17:12:49 +08:00
    家里用的 AdGuard Home,开启了查询所有 DNS 服务器并返回所有响应中速度最快的 IP 地址,明确的告诉你,效果微乎其微 @@@@
    reus
        11
    reus  
       2020-09-30 17:19:36 +08:00 via Android
    都连接,看哪个最先连上,就用哪个,其他的关掉
    wxy1991
        12
    wxy1991  
    OP
       2020-09-30 17:20:33 +08:00
    @zhybzc
    @masker
    @Jacky23333
    @Atukey 我用站长工具先大概测试了一下,取 ttl 和 ping 最小的 ip,速度从 20k-200k 左右,算是巨量的提升,但是效果不稳定,最大 500k,最小 60k,我还是就当练手小项目吧
    maojy1989
        13
    maojy1989  
       2020-09-30 17:32:48 +08:00
    @wxy1991 #12 TTL 是 IP 数据包在计算机网络中可以转发的最大跳数。TTL 字段由 IP 数据包的发送者设置,在 IP 数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个 TTL 字段值,具体的做法是把该 TTL 的值减 1,然后再将 IP 包转发出去。如果在 IP 包到达目的 IP 之前,TTL 减少为 0,路由器将会丢弃收到的 TTL=0 的 IP 包并向 IP 包的发送者发送 ICMP time exceeded 消息。
    TTL 的主要作用是避免 IP 包在网络中的无限循环和收发,节省了网络资源,并能使 IP 包的发送者能收到告警消息。

    TTL 不是越小越好
    forgottencoast
        14
    forgottencoast  
       2020-09-30 17:35:38 +08:00
    就算你改了 hosts 的 IP,还要确保应用会及时更新 IP,因为很多应用都会缓存自己的 DNS 解释到的 IP 。
    learningman
        15
    learningman  
       2020-09-30 17:50:49 +08:00
    @wxy1991 smartdns adgurad
    都是成熟方案,早就有人想过了
    pmispig
        16
    pmispig  
       2020-09-30 17:53:21 +08:00
    找个固定 repo 的压缩包,轮流下载,哪个最快用哪个,ping 没什么卵用
    heiheidewo
        17
    heiheidewo  
       2020-09-30 18:50:00 +08:00   ❤️ 1
    有这个时间去把妹不香么
    lxk11153
        18
    lxk11153  
       2020-09-30 19:01:34 +08:00
    这个吗?一文入门 DNS ?从访问 GitHub 开始
    https://cloud.tencent.com/developer/article/1671005
    sunulin
        19
    sunulin  
       2020-09-30 19:10:41 +08:00 via Android
    之前也是探测 ip 用。,费了半天劲,几乎没什么效果。上代理吧
    ungrown
        20
    ungrown  
       2020-09-30 20:18:37 +08:00
    GitHub 没有对大陆友好的节点
    老老实实挂代理
    Maskeney
        21
    Maskeney  
       2020-09-30 20:41:29 +08:00
    放心吧 没用 因为 GitHub 访问慢并不是取决于你用哪个 IP
    cz5424
        22
    cz5424  
       2020-09-30 21:13:21 +08:00 via iPhone
    换个代理最快[狗头]
    shynome
        23
    shynome  
       2020-09-30 22:17:58 +08:00 via Android
    我挂代理的话 100M 联通宽带可以跑到 3M/s,最高的话能有 5M/s
    所以还是挂代理最好了
    oneoyn
        24
    oneoyn  
       2020-09-30 22:31:11 +08:00
    阿里云轻量 服务器 香港的 24 一月 买了搭建 扶梯 不香吗 30M 呢 https://www.aliyun.com/activity?userCode=gr9dyqjt
    ysc3839
        25
    ysc3839  
       2020-10-01 02:25:43 +08:00 via Android
    没办法预先判断,延迟以及 TTL 和带宽没有强相关的关系,只能靠实际传输时统计知道快不快。
    而且 GitHub 那几个服务器好像都很慢,你挑了最快的也不能节约时间。
    zzw1998
        26
    zzw1998  
       2020-10-01 02:46:06 +08:00
    AdGuard Home 或者 smartdns 就可以实现,不过还是不如挂梯子一劳永逸
    natashahollyz
        27
    natashahollyz  
       2020-10-01 08:20:47 +08:00
    三五块钱一个月的代理多的是,人别没事折腾自己
    Mindjet
        28
    Mindjet  
       2020-10-01 08:24:01 +08:00
    SmartDNS ?
    不太懂,只是想到了随口说句
    interim
        29
    interim  
       2020-10-01 10:47:05 +08:00
    @oneoyn 香港线路晚上质量很差,还不如买搬瓦工。
    ericls
        30
    ericls  
       2020-10-01 11:36:47 +08:00
    跟这个类似吧:
    https://en.wikipedia.org/wiki/Happy_Eyeballs

    很经典的问题了
    eudore
        31
    eudore  
       2020-10-01 13:47:16 +08:00
    挂代理吧 一年才 100 块 简单省事,轻松 10M/s,你是经常下小电影还是经常下片呢?不然流量准是够用的。

    24 楼说的 24/月这价真贵,还要自己出人工去修,遇上二回时就很可能要凉,而且是个推广连接,地址参数里面有个 userCode 。
    imdong
        32
    imdong  
       2020-10-01 14:12:50 +08:00
    一通操作猛如虎,一看下载二点五。
    siweipancc
        33
    siweipancc  
       2020-10-01 15:13:00 +08:00 via iPhone
    @maojy1989 妈耶,又复习了一个计算机网络知识:D
    clf
        34
    clf  
       2020-10-01 19:08:20 +08:00
    @Atukey 我使用 AdGuard 会影响网速(杭州,中国电信),原本下载能够达到 100Mbps 的下载链接最后只有 30Mbps,不知道什么情况
    cheng6563
        35
    cheng6563  
       2020-10-01 21:49:10 +08:00 via Android
    随便找个项目的 release 包,几 m 大小的,然后直接下载测试。ping 什么的都没软用的,我挂的欧洲梯,常年 400 多延迟但就是又快又稳
    tadtung
        36
    tadtung  
       2020-10-02 10:10:52 +08:00 via Android
    这个很简单,你自己写个简单的测速脚本就行。
    其中 ping 值占的权重很小,丢包率更重要,最主要还是要看文件本地下载速度,权重根据你需要自己定。github 目前使用的 ip 段,你大概有收集,那动手就行。

    我们大多使用 cloudflare 自选 ip 。加速网站或者是 v2ray 之类。

    github 自选 ip 用处不大。国内出口带宽和网络情况如此。而且你如果没有固定 ip,每次往往换 ip 你也需要重新测速。
    SenLief
        37
    SenLief  
       2020-10-02 11:42:35 +08:00
    没有用得,如果确实访问不到,不如用 cf 得 worker 吧。至少可以访问。
    wazon
        38
    wazon  
       2020-10-02 13:12:52 +08:00
    真正的优选,延迟、丢包、速率缺一不可(皆为 TCP )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3759 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:07 · PVG 13:07 · LAX 21:07 · JFK 00:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.