关于HTTP关键词识别

63 views
Skip to first unread message

崔莺莺

unread,
Mar 27, 2010, 10:03:55 AM3/27/10
to scholarz...@googlegroups.com
代码已经上传到trunk/keywords中。GFW变来变去,等几天稳定了再继续写。

目前的代码可以处理URL中只有一个关键词的情况。
编译后国内同学打
./url_keywords -f gfwkeyword.conf
国外同学打
./url_keywords -f gfwkeyword_us.conf
运行。

由于程序会并发建立大量连接,所以要求有公网IP。在运行之前最好先看一下*.conf的内容和./url_keywords的输出,适当得修改各个参数的值。

程序运行后输入url等待结果即可。
例如输入www.google.com
会输出没有关键词
输入www.twitter.com
会输出
type1 keyword: .twitter.com
type2 keyword: .twitter.com
最后输入q退出。

目前最严重的bug是:如果一个关键词是type2但是不是type1的,程序会死循环,例如co.cc。暂时不打算解决了。
由于对大多数情况都能处理了。Jimmy同学你来试试吧……另外有心情debug的同学也可以来看看……

Jimmy Xu

unread,
Mar 27, 2010, 10:11:36 AM3/27/10
to scholarz...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/27/2010 10:03 PM, 崔莺莺 wrote:
> 代码已经上传到trunk/keywords中。GFW变来变去,等几天稳定了再继续写。
>
> 目前的代码可以处理URL中只有一个关键词的情况。
> 编译后国内同学打
> ./url_keywords -f gfwkeyword.conf
> 国外同学打
> ./url_keywords -f gfwkeyword_us.conf
> 运行。

> [...]
>

pcap_open_live: SIOCGIFHWADDR: No such device
gk_cm_init: failed.

我这儿少了什么依赖吗?

- --
Jimmy Xu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkuuEhgACgkQwBaNZ/uabwozPQCgtUlRJGdE12oqFGfB4rb0FDH+
SWgAn3PRDTGR5dNijjOi+AvziCP3QB7N
=e9I5
-----END PGP SIGNATURE-----

崔莺莺

unread,
Mar 27, 2010, 10:13:11 AM3/27/10
to scholarz...@googlegroups.com
cat gfwkeyword.conf
i ppp0 seg 1300 kps 100 dstlist 74.125.0.0-74.125.255.255:1024-65535

你的网络设备不是ppp0。这里需要改一下

> --
> You received this message because you are subscribed to "scholarzhang-dev".
> To post to this group, send email to scholarz...@googlegroups.com
> To unsubscribe from this group, send email to
> scholarzhang-d...@googlegroups.com
>
> To unsubscribe from this group, send email to scholarzhang-dev+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
>

Jimmy Xu

unread,
Mar 27, 2010, 10:15:58 AM3/27/10
to scholarz...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/27/2010 10:13 PM, 崔莺莺 wrote:
> cat gfwkeyword.conf
> i ppp0 seg 1300 kps 100 dstlist 74.125.0.0-74.125.255.255:1024-65535
>
> 你的网络设备不是ppp0。这里需要改一下
>

Done,输入 www.twitter.com 后是大量的:
[information]: GFW's not working on ... with type1
和少量:
[Warning]: Unexpected RESET from GFW.

这是正常现象还是?……

- --
Jimmy Xu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkuuEx4ACgkQwBaNZ/uabwplawCfXctxL444Jk3t+jrPLk+oaGCt
GJwAn1uqD51YBrVdsT0nljTuo/Npmsbk
=rtjB
-----END PGP SIGNATURE-----

崔莺莺

unread,
Mar 27, 2010, 10:54:03 AM3/27/10
to scholarz...@googlegroups.com
在 2010年3月27日 下午10:15,Jimmy Xu <xu.jim...@gmail.com> 写道:
> Done,输入 www.twitter.com 后是大量的:
> [information]: GFW's not working on ... with type1
那个(da, dp)对应的type1节点没有在3 * time_interval + expire_timeout = 340ms内响应。

> 和少量:
> [Warning]: Unexpected RESET from GFW.
> 这是正常现象还是?……

因为GFW没有及时响应,所以在下一步测试的时候,收到了上次GFW的RST包,由于这些包与当前测试无关,造成了这种现象。

解决办法是增大expire_timeout,比如放到2秒。不过这样程序速度也就慢了。

崔莺莺

unread,
Mar 28, 2010, 2:06:22 PM3/28/10
to scholarz...@googlegroups.com
更正了几处会导致结果出错的bug,请重新checkout。

崔莺莺

unread,
Mar 28, 2010, 3:11:35 PM3/28/10
to scholarz...@googlegroups.com
目前的代码主要希望大家帮忙测试会不会出现以下情况:

1、Segmentation Fault

2、内存占用:
64位系统上默认设置情况下大约是12M(系统 + 其他库开销) + 18M(两个线程的开销) + 16M + 24M + (<= 2M) <= 72MB
32位系统上默认设置情况下大约是 4M(系统 + 其他库开销) + 16M(两个线程的开销) + 16M + 12M + (<= 2M) <= 50MB
如果超出很多说明有内存泄漏。

3、结果正确性。目前的程序应该即使在有干扰的情况下仍然可以得到正确结果。(比如上次推出后90秒内重新开启,这时候有些(da,dp)被继发封锁了但是程序不知道)

4、有大量调试输出。或者其他非unexpected RESET和GFW type* is not working的调试输出。

5、有关程序细节的提议。

如果这个版本没有bug了很快就可以正式发布,届时请求大家帮忙port到其它操作系统。

在 2010年3月29日 上午2:06,崔莺莺 <yingyingcui....@gmail.com> 写道:
> 更正了几处会导致结果出错的bug,请重新checkout。
>

崔莺莺

unread,
Mar 28, 2010, 3:49:57 PM3/28/10
to scholarz...@googlegroups.com
关于如何测试:
测试就请大家直接从autoproxy-gfwlist里面拿没有星号的条目测试,注意输入的url不要带http://前缀。
autoproxy-gfwlist的条目十分不准确,希望大家帮助把错误的关键词提交给autoproxy以及把正确的关键词放入keywords
page (https://groups.google.com/group/scholarzhang-dev/web/keywords )

崔莺莺

unread,
Mar 31, 2010, 12:56:08 PM3/31/10
to scholarz...@googlegroups.com
r77 committed

崔莺莺

unread,
Apr 3, 2010, 3:56:33 PM4/3/10
to scholarz...@googlegroups.com
r81基本可用,请求大家测试。

崔莺莺

unread,
Apr 11, 2010, 4:04:26 AM4/11/10
to scholarz...@googlegroups.com
经过一段时间的测试,这个版本的url_keywords似乎已经没有bug了。
单独下载此工具请运行
svn co http://scholarzhang.googlecode.com/branch/keywords-r89 keywords-r89

下一步会将此工具做成C/S结构,代码会放在trunk/keywords中,目前trunk/keywords中有一个与keywords-r89相同功能的url_keywords,请求大家对比反馈。(个人感觉这里的url_keywords似乎有点慢,原因未明)

在 2010年4月4日 上午3:56,崔莺莺 <yingyingcui....@gmail.com> 写道:
> r81基本可用,请求大家测试。
>

Jimmy Xu

unread,
Apr 11, 2010, 4:06:07 AM4/11/10
to scholarz...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/11/2010 04:04 PM, 崔莺莺 wrote:
> svn co http://scholarzhang.googlecode.com/branch/keywords-r89 keywords-r89
>

http://scholarzhang.googlecode.com/svn/branches/keywords-r89

- --
Jimmy Xu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkvBgu8ACgkQwBaNZ/uabwp4pwCgtUw5zgT7unCIgUMTlb3YpSfw
V8YAoJhMWtNYno1PCtFU+UKFEk68NOxt
=dnTm
-----END PGP SIGNATURE-----

Jimmy Xu

unread,
Apr 11, 2010, 4:08:57 AM4/11/10
to scholarz...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/11/2010 04:04 PM, 崔莺莺 wrote:

> 经过一段时间的测试,这个版本的url_keywords似乎已经没有bug了。
> 单独下载此工具请运行
> svn co http://scholarzhang.googlecode.com/branch/keywords-r89 keywords-r89
>
> 下一步会将此工具做成C/S结构,代码会放在trunk/keywords中,目前trunk/keywords中有一个与keywords-r89相同功能的url_keywords,请求大家对比反馈。(个人感觉这里的url_keywords似乎有点慢,原因未明)
>

似乎不管是 r89 还是 HEAD 都会

Listening on device eth0 with IP address 64.182.122.48
www.twitter.com
[information]: GFW type2 is not working on (local:45431,
203.208.37.255:65535).
[information]: GFW type2 is not working on (local:33957,
203.208.37.248:17120).
[information]: GFW type2 is not working on (local:48735,
203.208.37.248:17121).
[information]: GFW type2 is not working on (local:36486,
203.208.37.248:17122).
[information]: GFW type2 is not working on (local:44604,
203.208.37.248:17123).
[information]: GFW type2 is not working on (local:57488,
203.208.37.248:17124).
......

On 04/11/2010 04:07 PM, 崔莺莺 wrote:
> 建议将autoproxy.org上的查询改为使用表单。

表单的话等东西可以用于生产环境了肯定会做的~

- --
Jimmy Xu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkvBg5kACgkQwBaNZ/uabwqI0QCeL4QyediGIogVK/FV2XPpgtW4
dcoAn3iwq2cfTbVHVe85m8TeMvzPb5Pi
=4js0
-----END PGP SIGNATURE-----

崔莺莺

unread,
Apr 11, 2010, 4:16:53 AM4/11/10
to scholarz...@googlegroups.com
在 2010年4月11日 下午4:08,Jimmy Xu <xu.jim...@gmail.com> 写道:
> 似乎不管是 r89 还是 HEAD 都会
>
> Listening on device eth0 with IP address 64.182.122.48
> www.twitter.com
> [information]: GFW type2 is not working on (local:45431,
> 203.208.37.255:65535).
> [information]: GFW type2 is not working on (local:33957,
> 203.208.37.248:17120).
> [information]: GFW type2 is not working on (local:48735,
> 203.208.37.248:17121).
> [information]: GFW type2 is not working on (local:36486,
> 203.208.37.248:17122).
> [information]: GFW type2 is not working on (local:44604,
> 203.208.37.248:17123).
> [information]: GFW type2 is not working on (local:57488,
> 203.208.37.248:17124).
r89比之前的r81没有本质变化。not working就是not working了。。是不是网络问题?

崔莺莺

unread,
Apr 11, 2010, 5:04:51 AM4/11/10
to scholarz...@googlegroups.com
非常抱歉,请重新checkout。(see r92 && r93)

崔莺莺

unread,
Apr 14, 2010, 6:32:33 AM4/14/10
to scholarz...@googlegroups.com
keywords-r89和HEAD的url_keywords继续修复bug,该bug可能导致运行结果不正确。
另外将gfwkeyword_us.conf中的expire_timeout设置成了600。这个数值是很差的,程序可能会等很久才能得到答案。如果要为自己的机器找出尽可能小的合适的数值,一种方法是从小到大调整e,如果运行报错unexpected
reset则增大此数值;另一种方法请运行url_keywords同时抓包计算相同tcp连接下reset包距离最后一个本地发出的包的时间,将e设置为略大于这个时间。(有可能会写一个找寻合适e值得程序,也有可能不写)

现在有bug的概率应该小于1%了吧。(概率 = 这个bug还能被找出来的条件概率)

Reply all
Reply to author
Forward
0 new messages