logo NodeSeekbeta

【流媒体检测】小改版流媒体解锁检测脚本——增加DNS/原生解锁检测机制【更新记录见置顶评论】

前言

  • 非常感谢@lmc999(Github)大神的原创脚本,为大家提供了极大的便利
  • 本脚本(Github项目地址)基于@lmc999的脚本改编而来,有感兴趣的小伙伴可以去Star一下

本脚本初衷在于很多小伙伴在意机器的解锁质量,大家都知道,DNS解锁是一个万人骑且随时切换的东西,可能会对车位的稳定程度存在一定的影响(未证实)
而我们常用的流媒体解锁检测脚本并不能分辨出机器具体的解锁方式,这就会让解锁质量无法直观的体现出来
所以在大家晒出评测的时候,很多MJJ还要多嘴问一句“请问是原生解锁还是DNS解锁?”
分享者可能还要看一下resolv,相当的麻烦,而且也分辨不出DNS具体劫持了哪些流媒体
因此我在原作基础上,增改了大约10%的代码,通过添加DNS解锁检测机制解决了这一问题,让分享变得一目了然

一键检测脚本

拷贝黏贴下述命令即可执行检测:

bash <(curl -L -s media.ispvps.com)

Hits

效果预览

搬瓦工HK_CMI WAP_SG2 丽萨主机_9929 BestVM_SG(ipv6)
搬瓦工HK_CMI WAP_SG2 丽萨主机_9929 BestVM_SG_Lite(ipv6)

脚本原理

检测原理其实相对简单,就是针对各家流媒体关键域名进行DNS检测

  • 若发现域名解析结果与DNS服务器地址一致,则判定为DNS解锁
  • 若发现域名解析结果指向非DNS服务器地址,则判定为原生解锁
  • 【更新】增加多种检测机制,确保判断结果精准无误

当然,这样的判定方式可能存在被服务商欺骗的漏洞,但是目前99%的结果应该还是准确的,人也没必要这么做
后续如果有时间,也可以增加针对IP对应ASN的检测,以杜绝相关漏洞,当然目前没有这个必要,所以暂时就不费那个劲了,等有了report再说

脚本变更片段

其实,申明上述原理以后,写脚本就变得非常简单了,以奈飞为例,在对应function加入如下代码即可实现

    local resultdns=$(nslookup netflix.com)
    local resultinlines=(${resultdns//$'\n'/ })
    for i in ${resultinlines[*]}
    do
        if [[ $i == "netflix.com" ]]; then
            local resultdnsindex=$(( $resultindex + 2 ))
        fi
        local resultindex=$(( $resultindex + 1 ))
    done
    if [[ ${resultinlines[1]} == ${resultinlines[$resultdnsindex]} ]]; then
        local resultunlocktype="${Font_Yellow}DNS 解锁${Font_Suffix}"
    else
        local resultunlocktype="${Font_Green}原生解锁${Font_Suffix}"
    fi

当然,其他流媒体只要变更一下关键域名即可,此外在制表输出部分也要简单改动一下,非常简单,这里就不再赘述

如果本贴对你有用,烦请点一个免费的赞吧 xhj008

  • 脚本更新日志

    • 2024/05/09 00:40 修正Netflix澳洲检测错误问题,增加Wikipedia及Reddit检测
    • 2024/03/22 09:45 修复MyTVSuper,感谢RikkaNaa
    • 2024/03/22 09:30 增加ChatGPT地区检测,更新英文原生/DNS解锁显示内容
    • 2024/02/20 01:30 修正Docker运行报错的bug,补全全区域检测项目
    • 2024/02/18 22:00 修复LineTV.tw
    • 2024/02/17 16:00 修复Now E,感谢RikkaNaa
    • 2024/02/12 00:45 增加Alpine系统支持
    • 2024/02/09 23:59 Netflix页面改版导致原脚本判定出现错误,现已修正
    • 2024/01/31 00:30 修复Youtube极小概率解锁类别判断错误问题
    • 2024/01/08 13:01 增加TikTok解锁检测
    • 2024/01/07 21:55 增加对动画疯、MyTVSuper、4GTV的DNS解锁检测
    • 2024/01/04 18:55 增加独立的脚本运行计数器
    • 2024/01/03 23:27 进一步增加DNS检测机制,增加代理服务器解锁检测,修正纯ipv6机器无法检测的bug
    • 2024/01/02 23:00 增加双重DNS检测机制,修正原版日本流媒体检测报错,广告前置
    • 2024/01/02 03:00 改进检测机制,杜绝了部分误判
    • 2024/01/01 21:00 增加DNS/原生解锁检测机制

    感谢热心兄弟 @Pepsi 提供改进建议 xhj003
    感谢 @node--seek 指出脚本错误 xhj003
    感谢热心兄弟 @Kofuneushio #39 @Kofuneushio #39 报告脚本错误 xhj003
    感谢热心兄弟 @xiongwuya #112 告知奈飞改版,并给出建议 xhj003
    感谢热心兄弟 @acaiplus 提供建议 xhj003
    感谢热心兄弟 @YakaMiraris #0 提供信息 xhj003

  • @Pepsi #53 哈哈,能正确识别就好 xhj020

    • 2024/01/31 00:30 修复Youtube极小概率解锁类别判断错误问题
      感谢热心兄弟 @node--seek 指出脚本错误 xhj003
  • 去RegionRestrictionCheck群里问了下,说login的重定向还在。

    改到login也可以

    旧代码
    local region=$(curl $useNIC $usePROXY $xForward -${1} --user-agent "${UA_Browser}" -fs --max-time 10 --write-out %{redirect_url} --output /dev/null "https://www.netflix.com/title/80018499" 2>&1 | cut -d '/' -f4 | cut -d '-' -f1 | tr [:lower:] [:upper:])
    新代码
    local region=$(curl $useNIC $usePROXY $xForward -${1} --user-agent "${UA_Browser}" -fs --max-time 10 --write-out %{redirect_url} --output /dev/null "https://www.netflix.com/login" 2>&1 | cut -d '/' -f4 | cut -d '-' -f1 | tr [:lower:] [:upper:])
    
    • 2024/02/12 00:45 增加Alpine系统支持

    感谢热心兄弟 @acaiplus 提供建议 xhj003

  • 来了

  • xhj006

  • 河南拔智齿

  • wap,bytevirt,akile
    上面三家都是DNS解锁吗

  • 马上试试

  • 666

  • 大佬牛的

  • 流媒体解锁监测数据。可以区分原生解锁还是dns解锁

  • 收藏!

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有15771位seeker

🎉欢迎新用户🎉