推荐学习书目
› 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 · 7115 views
    This topic created in 2224 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
    goodryb
    Sep 30, 2020
    1
    挂个代理最快了
    masker
    masker
    Sep 30, 2020 via Android
    2
    挂代理这么难吗。买一个代理很贵吗
    DogBear
    DogBear
    Sep 30, 2020
    3
    再多 ip 也都差不多,不如挂个代理
    wxy1991
    wxy1991
    OP
    Sep 30, 2020
    4
    @masker 我在学 python 呢,就是想上手练习个小项目,兄弟别戾气这么大,如果写完效果好的话我会在 v2 分享出来的
    wafm
    wafm
    Sep 30, 2020
    5
    延迟低不一定速率就快的,

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

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

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

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

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

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