blocked-sites-in-south-korea
自动检测韩国互联网封锁网站的异步并发工具,通过关键词追踪KCSC审查机制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
自动检测韩国互联网封锁网站的异步并发工具,通过关键词追踪KCSC审查机制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你在韩国首尔的咖啡馆里,用笔记本打开浏览器,输入了一个熟悉的网站——却跳出了一行陌生的韩文警告。背后是谁在拦截?这正是 wpzzz/blocked-sites-in-south-korea 所研究的对象。
韩国是全球互联网渗透率最高的国家之一,同时也是少数对网络内容实施系统性审查的民主国家。负责这一机制的核心机构是 韩国通信标准委员会(KCSC,Korea Communications Standards Commission)。KCSC 依据韩国《信息和通信网络法》运行,有权要求互联网服务提供商(ISP)封锁被认为'有害'的网站。 与中国的防火长城不同,韩国的封锁机制更多针对特定类别内容(主要是成人内容、赌博网站),但覆盖范围极广——据估计已封锁数万至数十万域名,成为互联网自由研究者持续关注的焦点。
blocked-sites-in-south-korea 的工作逻辑并不复杂,但极其高效。工具的核心文件 check.py 是一个异步并发 URL 检测器,流程如下:
第一步:输入目标域名。 用户将待检测的域名列表写入 domains.txt,每行一个域名(支持裸域名或带协议的完整 URL)。
第二步:并发检测。 脚本使用 Python 的 asyncio + aiohttp 库,同时发起大量 HTTP 请求(默认 50 并发,100 连接池上限)。相比单线程串行检测,异步并发可以将数千个域名的检测时间从数小时压缩到数分钟。
第三步:识别封锁特征。 这是最关键的一步。当一个被 KCSC 封锁的域名从韩国 IP 访问时,用户会被 ISP 重定向到 KCSC 运营的警告页面。警告页面的特征 URL 是 warning.or.kr/i1.html——项目通过在 HTTP 响应体中搜索这一特征字符串,精确判断域名是否已被封锁。
第四步:追踪重定向。 对于返回 301/302/307/308 等重定向状态码的请求,工具会记录重定向目标地址,帮助研究者分析 ISP 的封锁重定向策略。
第五步:输出结果。 所有检测结果(包含响应时间和状态)追加写入 output.txt,同时输出到日志文件 log.log。
图1:工具通过检测 warning.or.kr/i1.html 关键词识别韩国封锁状态
项目提供了两套封锁域名列表:
整个项目的代码量不足 150 行,没有外部机器学习依赖,唯一的运行时依赖是 aiohttp。技术选型理由充分:
尽管项目的主要数据来源是成人内容域名列表,但其研究价值远超这一标签。封锁名单中同样包含政治评论网站、文件分享平台、VPN 服务等。研究者可以通过分析列表构成,量化韩国互联网审查的范围和边界。 另一个需要正视的问题是:封锁列表的时效性。KCSC 的封锁决策是动态的——可能今天封锁、明天解封。工具只能检测当前状态,无法追踪历史变化。若要建立时间序列分析,需要定期运行检测并保存历史快照。 此外,工具的封锁判断逻辑依赖警告页面特征 URL(warning.or.kr/i1.html)。若 KCSC 更换警告页面的 URL 或域名,工具将无法检测,需要同步更新检测关键词。
在全球范围内,互联网审查研究正从学术圈走向更广泛的用户群体。土耳其的 BTK 封锁数据库、俄罗斯的 blocklist、伊朗的 GFI 项目,都是类似的数据积累工作。blocked-sites-in-south-korea 填补了韩国方向的具体空白——它是针对韩国 KCSC 机制最实用的开源实现。 从项目本身的数据来看(4100+ stars),这类网络审查研究工具在开发者社区有稳定的受众群体。对于关注数字权利、互联网治理或跨境网络行为的开发者,这个项目是一个极好的参考起点。