Loading... ![image.png](https://blush.icu/usr/uploads/2024/06/1993310249.png) 带有 bash 环境的任意 Unix 或类 Unix 操作系统。 例如:Ubuntu 16+, Debian 10+, RHEL 7+, Arch Linux, Alpine Linux, FreeBSD, MacOS 10.13+, Android (Termux), iOS (iSH), Windows (MinGW/Cygwin), OpenWRT 23+ 等等。 ## 使用方法 [](https://github.com/lmc999/RegionRestrictionCheck#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95) **使用脚本前请确认 curl 已安装** ```shell bash <(curl -L -s check.unlock.media) ``` ##### 只检测 IPv4 结果: [](https://github.com/lmc999/RegionRestrictionCheck#%E5%8F%AA%E6%A3%80%E6%B5%8B-ipv4-%E7%BB%93%E6%9E%9C) ```shell bash <(curl -L -s check.unlock.media) -M 4 ``` ##### 只检测 IPv6 结果: [](https://github.com/lmc999/RegionRestrictionCheck#%E5%8F%AA%E6%A3%80%E6%B5%8B-ipv6-%E7%BB%93%E6%9E%9C) ```shell bash <(curl -L -s check.unlock.media) -M 6 ``` ##### 指定检测的网卡名称: [](https://github.com/lmc999/RegionRestrictionCheck#%E6%8C%87%E5%AE%9A%E6%A3%80%E6%B5%8B%E7%9A%84%E7%BD%91%E5%8D%A1%E5%90%8D%E7%A7%B0) ```shell bash <(curl -L -s check.unlock.media) -I eth0 ``` ##### 直接测试指定的区域编号: [](https://github.com/lmc999/RegionRestrictionCheck#%E7%9B%B4%E6%8E%A5%E6%B5%8B%E8%AF%95%E6%8C%87%E5%AE%9A%E7%9A%84%E5%8C%BA%E5%9F%9F%E7%BC%96%E5%8F%B7) ```shell bash <(curl -L -s check.unlock.media) -R 0 ``` 如果不指定区域编号或区域编号为空,则显示区域选择菜单 ##### 选择脚本语言为英文: [](https://github.com/lmc999/RegionRestrictionCheck#%E9%80%89%E6%8B%A9%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80%E4%B8%BA%E8%8B%B1%E6%96%87) ```shell bash <(curl -L -s check.unlock.media) -E en ``` **或者直接运行以下 Docker 命令** (兼容 ARM 架构) ``` docker run --rm -ti --net=host lmc999/regioncheck && docker rmi lmc999/regioncheck > /dev/null 2>&1 ``` ## 安装依赖 [](https://github.com/lmc999/RegionRestrictionCheck#%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96) ### Ubuntu/Debian: [](https://github.com/lmc999/RegionRestrictionCheck#ubuntudebian) ``` sudo apt install curl openssl ca-certificates -yq ``` 可选依赖: ``` sudo apt install uuid-runtime dnsutils -yq ``` ### RHEL: [](https://github.com/lmc999/RegionRestrictionCheck#rhel) ``` sudo dnf install curl openssl ``` 可选依赖: ``` sudo dnf install bind-utils ``` ### Android Termux: [](https://github.com/lmc999/RegionRestrictionCheck#android-termux) ``` pkg up -yq pkg install curl openssl openssl-tool ca-certificates -yq ``` 可选依赖: ``` pkg install uuid-utils dnsutils -yq ``` ### iOS iSH / Alpine Linux: [](https://github.com/lmc999/RegionRestrictionCheck#ios-ish--alpine-linux) ``` apk add curl bash grep openssl ca-certificates uuidgen ``` ### macOS: [](https://github.com/lmc999/RegionRestrictionCheck#macos) ``` brew install curl openssl md5sha1sum coreutils ``` ### Windows: [](https://github.com/lmc999/RegionRestrictionCheck#windows) 可以使用 Cygwin 或者 Git Windows 最新版本。 如果使用 Git Windows,请确认安装 `powershell` 用于生成 uuid。请确认使用最新版本的 `curl` (>=8.8.0) 以避免遇到段错误。 ### OpenWRT [](https://github.com/lmc999/RegionRestrictionCheck#openwrt) ``` opkg update opkg install grep ``` ## 特性 [](https://github.com/lmc999/RegionRestrictionCheck#%E7%89%B9%E6%80%A7) 纯 bash shell 实现的流媒体检测功能,可免 ROOT 执行,支持多个平台。可用于批量测试多个地区的流媒体网站解锁情况。 具体的各个地区流媒体测试支持情况,详见 [supported\_platforms](https://github.com/lmc999/RegionRestrictionCheck/blob/main/reference/supported_platforms.md) ## 注意事项 [](https://github.com/lmc999/RegionRestrictionCheck#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9) 1. Netflix CDN 分流测试依赖 DNS 解析。而如果您使用的本地设备开了 VPN 代理进行测试,将无法得到正确的 CDN 分流信息。 ## PR 须知 [](https://github.com/lmc999/RegionRestrictionCheck#pr-%E9%A1%BB%E7%9F%A5) ### 1. 请勿滥用 curl 的参数。 [](https://github.com/lmc999/RegionRestrictionCheck#1-%E8%AF%B7%E5%8B%BF%E6%BB%A5%E7%94%A8-curl-%E7%9A%84%E5%8F%82%E6%95%B0) 常用 CURL 参数如下: ``` -s (--silent): 静默模式。即不输出任何错误信息、URL 连接详情等。 -S (--show-error): 显示错误。当使用静默模式时,输出错误消息。如果使用该参数,意外的错误消息可能会影响代码整洁性,不建议使用。 -f (--fail): 当 URL 返回 400 错误或者 HTTP 无法传输时,不输出错误信息,并返回错误代码 22。 -w (--write-out): 当 URL 访问完成后,可用于输出例如 HTTP 响应代码、URL 网址等内容。 -o (--output): 将请求的内容重定向输出到文件,而不是直接屏幕打印。 -D (--dump-header): 将访问 URL 时收到的 header 信息输出到文件。 -L (--location): 跟随 URL 跳转。 -i (--include): 在输出结果中显示响应 header 信息。 -c (--cookie-jar): 当 URL 访问完成后,将 cookie 信息写入到 Netscape 格式的文件中。 -b (--cookie): 使用指定的数据或者文件作为 cookie。 ``` ### 2. 请勿使用双方括号 [](https://github.com/lmc999/RegionRestrictionCheck#2-%E8%AF%B7%E5%8B%BF%E4%BD%BF%E7%94%A8%E5%8F%8C%E6%96%B9%E6%8B%AC%E5%8F%B7) 双方括号只是 bash 的扩展功能。一是在某些不同平台可能会有兼容性问题,二是较为影响整洁性。 ### 3. 请避免使用 if ... elif ... else 语句 [](https://github.com/lmc999/RegionRestrictionCheck#3-%E8%AF%B7%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8-if--elif--else-%E8%AF%AD%E5%8F%A5) if ... elif 不利于代码的阅读性,在函数中,建议使用更简洁的判断模式,得到预期结果后使用 return 退出函数。 ### 4. 除非确实有必要,请尽量避免输出到文件 [](https://github.com/lmc999/RegionRestrictionCheck#4-%E9%99%A4%E9%9D%9E%E7%A1%AE%E5%AE%9E%E6%9C%89%E5%BF%85%E8%A6%81%E8%AF%B7%E5%B0%BD%E9%87%8F%E9%81%BF%E5%85%8D%E8%BE%93%E5%87%BA%E5%88%B0%E6%96%87%E4%BB%B6) 逻辑部分的处理请尽量在 shell 中处理,避免输出到文件。 ### 5. 请勿添加额外的依赖 [](https://github.com/lmc999/RegionRestrictionCheck#5-%E8%AF%B7%E5%8B%BF%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%9A%84%E4%BE%9D%E8%B5%96) 能以 shell 方式解决的问题,请尽量以 shell 方式实现。 最后修改:2024 年 10 月 11 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏