分类目录归档:堆代码

简单的 BT Tracker 连接检测

RT @kgen: 大家 BT 下载的时候,不要开着 VPN,发达国家的版权投诉猛如虎。版权方会主动放出一些正版的 BT 种子,然后收集所有连接来源 IP,投诉或索赔。

这对于 VPN 提供商来说也是一个很头疼的问题。现在的 BT 客户端为了避免被封,已经经进化出了各种加密、混淆手段,直接检测 P2P 流量很困难。不过,大多数时候,客户端都在下载是都会同时连接一些 BitTorrent tracker 服务器。这些服务器数量有限且地址、端口号相对固定,可以非常容易地收集,并直接通过 IP 地址和端口号判断而不必对流量内容进行深度检测。探测到了就扔炸弹。是一个简单易行的判断用户是否正在使用 BT 的方法。

这个方法已在某家梯子站上部署了有一段时间了。鉴于它误报率(false postive rate)低但漏报率(false negtive rate)高,检测到的「处罚」会比较严厉——发现连接就立即挂断这条 VPN 连接。效果似乎还不错,仅有的几次投诉经过排查,发现都是在这套机制的某些环节失效时发生的。

当时为了方便操作,写了几个脚本。现在重新整理了一下,放在了 GitHub 上。这个脚本主要用于从 BT 种子文件里收集 trackers 的地址,然后解析域名得到对应的 IP 地址、协议和端口号。脚本本身并不进行检测等操作,只是为了方便配置防火墙而写。

示例

先在各处收集一些 BT 种子,这些种子文件中通常会包含一个或多个的 trackers。可使用./trackers.py torrent获得 trackers 的 URL 列表,重复的地址会被自动剔除: 继续阅读

重构 ASS to SRT 字幕转换工具

重写了一遍两年前初学蛇语时写的字幕转换工具(ASS 字幕批量转 SRT)。

当时因常用某三星电视看动画,有这个需求。此外还想学下 Python,于是挖了这个坑..
自从最近把 VPS 邮件转发至 Gmail 后,不断被此坑在线版的错误报告骚扰,一翻代码,太羞耻了简直丑陋,决定换掉…

原有的功能都还在:批量、繁简转换、删特效字幕、仅保留首行、重排序、识别/指定编码。字幕重排序由可选改为强制启用。默认输出编码由 UTF-16 改为与源文件相同。兼容 Python 2.7 / 3.x。
不自带chardetlangconv这两个可选依赖了。后者为繁简转换所需,不在 PyPI 上,可在此处下载

非发烧用户请直接戳 在线版 就好了。
虽然网页还是旧的,内部已经换上了全新的 asstosrt。

Python 用户请直接:

pip install chardet
pip install asstosrt
asstosrt --help

利用上网卡转发短信至邮箱,来电提醒

想法

SMS to Email 效果

SMS to Email 效果

唔,最早的想法是:学校离家较远所以有两张SIM卡,而且由于资费原因只能分别在两地使用,想通过互联网代理,使得可以在一地同时使用两张卡..

最早想到的是使用闲置低端安卓机,后来发现手头闲置的一张华为数据卡(EC1261)可以利用,遂试着捣鼓出一个这玩意..

本文实现:

  • 将所收短信转发至指定 E-mail
  • 挂断来电并回复短信,同时发送 E-mail 提醒

虽然还不能接打电话,但至少接收各种验证短信不再麻烦了呢 🙂

设备

闲置 华为数据卡 EC1261 一张
装 ubuntu 的 Cubieboard 一块 继续阅读

Shadowsocks-java

Update 130905: 注意这只是一个练习,日常使用推荐 Pythonnode.js

Shadowsocks-java你懂的 软件的客户端的 java 版本。

Python, node.js, Go, C, C#, Ruby, Javascript 各种版本都有了,似乎没见到 Java 版..(Android 客户端用的是 C 版
抱着 改改然后出安卓收费版 积攒一下经验值的想法,试着用 Java 重写了一遍这玩意..

获得成就:

  • 习得 java Socket 编程基础
  • 明白 select 是何物
  • 习得 Socks5 协议基础
  • 了解归并排序
  • ……

只写了原始的 table 加密,归并排序那段是抄现成的。
后来才知道有 Arrays.sort(T[], Comparator) 无需自己写排序,但 byte[] 要转成 Byte[] (?) 我怕影响效率就没动了。

网络那段和 Python 版的一样,用了线程和 select。每个连接一个线程,转发数据用 Selector 。期间反复参考了这篇文章
本想全改 select 的但是当时还不太明白 Selector 怎么用,下次也许能写出来了。

具体用法参照 README。传送门在文章开头。

[已失效] 找回cnBeta评论

安装/使用方法:

  1. 下载 Greasemonkey,Firefox 用户请猛击这里安装扩展,Chrome 可直接安装(未测试);
  2.  请 猛击这里 (或这里) 安装“找回CB评论”脚本。(@mybeky 提供,感谢!说明

24小时内评论将直接显示。
超过24小时的,将调用第三方存档,目前仅支持找回热门评论。
存档包括 2011-12-02 之前、2012-11-18 之后大部分文章的热门评论。
每篇存档将在评论被隐藏前3分钟内完成。

UPDATE 2013-06-24: 重写了脚本,支持改版后的网站了。虽说原站风格太古董了也该改改,可是这改的确实不咋地,首先对浏览习惯的改变太大,其次配色总觉得有些不太对,比如热门评论这底色也太白了点吧.. = = .. 动态数据用 JSON 一次载入了,这倒是比之前载入两个 HTML 好多了。我抓评论也方便了不少。 继续阅读