V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · Sep 30, 2020 · 6605 views
    This topic created in 2039 days ago, the information mentioned may be changed or developed.

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

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

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

    也可以找一个文件专门用于测试下载速度
    masker
        8
    masker  
       Sep 30, 2020 via Android
    @wxy1991 找个好的代理比 hosts 方便很多
    Jacky23333
        9
    Jacky23333  
       Sep 30, 2020 via Android
    @wxy1991 难道不是应该取 ttl 大的吗
    Atukey
        10
    Atukey  
       Sep 30, 2020
    家里用的 AdGuard Home,开启了查询所有 DNS 服务器并返回所有响应中速度最快的 IP 地址,明确的告诉你,效果微乎其微 @@@@
    reus
        11
    reus  
       Sep 30, 2020 via Android
    都连接,看哪个最先连上,就用哪个,其他的关掉
    wxy1991
        12
    wxy1991  
    OP
       Sep 30, 2020
    @zhybzc
    @masker
    @Jacky23333
    @Atukey 我用站长工具先大概测试了一下,取 ttl 和 ping 最小的 ip,速度从 20k-200k 左右,算是巨量的提升,但是效果不稳定,最大 500k,最小 60k,我还是就当练手小项目吧
    Astralis
        13
    Astralis  
       Sep 30, 2020
    @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  
       Sep 30, 2020
    就算你改了 hosts 的 IP,还要确保应用会及时更新 IP,因为很多应用都会缓存自己的 DNS 解释到的 IP 。
    learningman
        15
    learningman  
       Sep 30, 2020
    @wxy1991 smartdns adgurad
    都是成熟方案,早就有人想过了
    pmispig
        16
    pmispig  
       Sep 30, 2020
    找个固定 repo 的压缩包,轮流下载,哪个最快用哪个,ping 没什么卵用
    heiheidewo
        17
    heiheidewo  
       Sep 30, 2020   ❤️ 1
    有这个时间去把妹不香么
    lxk11153
        18
    lxk11153  
       Sep 30, 2020
    这个吗?一文入门 DNS ?从访问 GitHub 开始
    https://cloud.tencent.com/developer/article/1671005
    sunulin
        19
    sunulin  
       Sep 30, 2020 via Android
    之前也是探测 ip 用。,费了半天劲,几乎没什么效果。上代理吧
    ungrown
        20
    ungrown  
       Sep 30, 2020
    GitHub 没有对大陆友好的节点
    老老实实挂代理
    Maskeney
        21
    Maskeney  
       Sep 30, 2020
    放心吧 没用 因为 GitHub 访问慢并不是取决于你用哪个 IP
    cz5424
        22
    cz5424  
       Sep 30, 2020 via iPhone
    换个代理最快[狗头]
    shynome
        23
    shynome  
       Sep 30, 2020 via Android
    我挂代理的话 100M 联通宽带可以跑到 3M/s,最高的话能有 5M/s
    所以还是挂代理最好了
    oneoyn
        24
    oneoyn  
       Sep 30, 2020
    阿里云轻量 服务器 香港的 24 一月 买了搭建 扶梯 不香吗 30M 呢 https://www.aliyun.com/activity?userCode=gr9dyqjt
    ysc3839
        25
    ysc3839  
       Oct 1, 2020 via Android
    没办法预先判断,延迟以及 TTL 和带宽没有强相关的关系,只能靠实际传输时统计知道快不快。
    而且 GitHub 那几个服务器好像都很慢,你挑了最快的也不能节约时间。
    zzw1998
        26
    zzw1998  
       Oct 1, 2020
    AdGuard Home 或者 smartdns 就可以实现,不过还是不如挂梯子一劳永逸
    natashahollyz
        27
    natashahollyz  
       Oct 1, 2020
    三五块钱一个月的代理多的是,人别没事折腾自己
    Mindjet
        28
    Mindjet  
       Oct 1, 2020
    SmartDNS ?
    不太懂,只是想到了随口说句
    interim
        29
    interim  
       Oct 1, 2020
    @oneoyn 香港线路晚上质量很差,还不如买搬瓦工。
    ericls
        30
    ericls  
       Oct 1, 2020
    跟这个类似吧:
    https://en.wikipedia.org/wiki/Happy_Eyeballs

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

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

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

    github 自选 ip 用处不大。国内出口带宽和网络情况如此。而且你如果没有固定 ip,每次往往换 ip 你也需要重新测速。
    SenLief
        37
    SenLief  
       Oct 2, 2020
    没有用得,如果确实访问不到,不如用 cf 得 worker 吧。至少可以访问。
    wazon
        38
    wazon  
       Oct 2, 2020
    真正的优选,延迟、丢包、速率缺一不可(皆为 TCP )
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   904 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 23:04 · PVG 07:04 · LAX 16:04 · JFK 19:04
    ♥ Do have faith in what you're doing.