使用虚拟机+OpenWrt+Menthust 解决校园网认证问题,但是会有共享网络检测问题。目前现象是使用 80 端口很大概率被封,用 IPtables 禁止 80 端口的数据出 WALN 口就没事,分析是根据 HTTP 的 User-Agent 请求头判定的,但是现在挺多 APP 还用了 80 端口加速视频、图片什么的。目前找到了两种方案,分别是xmurp-ua和UA2F,前者是内核修改,后者是用户态修改方案,但是不好使,访问 HTTP 页面,UA 并没修改。所以我参考他们的自己写了一个,同时也学习下 C 语言及 Linux 方面的东西.
我采用的是第二个方案,设置规则,让符合条件的包交给用户态程序处理,模块是 NFQUEUE 。现在进度是交叉编译环境、测试环境都准备好了,代码进行到在 TCP payload 中查找 User-agent 并替换,想请问下那种查找算法效率高些?以下是我已进行的分析:
User-Agent
字段却在前一个包,搜索不出来,第二个包好像不太好修改?修改成统一 UA 可能增大 TCP payload 的数据,导致 IP 层分片?感觉去掉各平台的标识就行了,比如 Android 、IOS 、Win 等标识不同时出现。考虑分片增加复杂度了,感觉这种情况可以不考虑,账号拉黑应该有个阈值的,不会有这么多数据包巧合。查找算法我感觉Rabin-Karp Algorithm
应该合适,hh
问题是:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.