限制单个IP并发TCP连接的iptables方法

2005-08-24

出处: http://www.fengnet.com/showart.asp?art_id=342&cat_id=9

限制单个IP并发TCP连接的方法适应于保护Linux上的各种TCP服务,使用iptables
中patch-o-matic中iplimit补丁来实现,对各种TCP服务比较通用。
做法:
配置Linux核心,使用2.4.20,并使用www.netfilter.org中patch-o-matic中的
base补丁中的iplimit。编译配置安装新核心。
使用www.netfilter.org的 iptables 1.2.8,安装到系统中。

示例:
1 限制连往本机的telnet单个IP并发连接为2个,超过的连接被拒绝:
iptables -I INPUT -p tcp –dport 23 -m iplimit –iplimit-above 2 -j REJECT

2 限制连往本机的web服务,1个C段的IP的并发连接不超过100个,超过的被拒绝:
iptables -I INPUT -p tcp –dport 80 -m iplimit –iplimit-above 100
–iplimit-mask 24 -j REJECT

在任意字符集下正常显示网页的方法(续)

2005-08-21

出处:http://www.coolcode.cn/?p=7

前几天写了一篇在任意字符集下正常显示网页的方法,里面介绍的很简单,就是把前128个字符以外的字符集都用NCR来表示,但是具体怎么转化我没有介绍,因为当时我觉得太简单了。但是后来发现有人问这个问题,这里就详细说明一下。

首先第一步是要把源字符集的字符串转化为UTF-16字符集,做这一步是因为UTF-16字符集中的每个字符都是两个字节,后面处理起来很容易,而如果在源字符集上直接做处理则很复杂。源字符集可以从原网页中的meta标签中获得,也可以单独指定,我的程序是让用户在表单中指定源字符集,因为我不能保证用户提交的文件就一定是HTML文件(其他文件也是可以的,比如这个WordPress的汉化包源文件是个po文件,它里面的内容也可以这样处理),而且即使是HTML文件,里面也不一定就有用于指定字符集的meta标签,所以通过表单单独指定字符集比较保险。你可能会觉得将一种字符集转化为另一种字符集很复杂,确实如此,如果自己来实现的话,确实非常麻烦,但是用PHP来做却很容易,因为它里面已经包含这样的函数了,你可以通过iconv函数很容易的来实现各种字符集之间的转化,如果你的机器上没有安装iconv扩展,你也可以使用mb_convert_encoding函数,如果Multibyte String扩展也没有安装,那就没办法了,因为你要自己实现那么多种编码的转化基本上是不可能的,除非你是顶级大牛!推荐使用iconv,因为这个效率高,支持的字符集也更多。

做完上面那一步之后,接下来是以每两个字节为单位对字符串进行处理。这两个字节直接转化为数字就是&#xxxxx;中的xxxxx,如果这个数字小于128就直接使用这个字符(注意这里就变成单字节了),否则就使用&#xxxxx;的形式。这里有一点要注意,就是当这个数字是65279(16进制的0xFEFF)时,请把它忽略掉,因为这个是Unicode编码中的传输控制字符,而我们现在的字符串已经只有iso-8859-1编码中的前128个字符了,所以我们不需要它了。

好了,基本思路就是这样,下面是实现的程序:

函数的参数中,$encode是源字符集,$str是需要进行转化的字符串。返回结果是转化以后字符串。

在任意字符集下正常显示网页的方法

2005-08-21

出处:http://www.coolcode.cn/?p=5

通常情况下,我们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 等,这样我们就可以在网页上显示我们指定编码的文字了。但是我们很可能会遇到这种情况,那就是我们可能希望在 ISO-8859-1 编码的网页上显示汉字,或者在 GB2312 编码的网页上显示韩文等。当然一种解决办法就是我们不用 ISO-8859-1 或者 GB2312 编码,而统统都采用 UTF-8 编码,这样我们只要在这种编码下,就可以混合显示各国文字了,这是现在很多网站采用的方法。

而我这里所说的并非上面这种方法,因为上面这种方法必须要指定字符集为 UTF-8 才可以,一旦用户手工指定为其他字符集,或者可能因为某些原因,那个字符集设置没起作用,而浏览器又没有正确自动识别的话,我们看到的网页还是乱码,尤其是在某些用框架作的网页中,某个框架中的页面如果字符集设置没起作用,在 firefox 中显示乱码而且还没法改变(我是说在不装RightEncode插件的情况下)。

而我这里介绍的方法即使是把网页指定为 ISO-8859-1 字符集,也能够正确显示汉字、日文等。原理很简单,就是把除了 ISO-8859-1 编码中前128个字符以外的所有其他的编码都用 NCR(Numeric character reference) 来表示。比如“汉字”这两个字,如果我们写成“汉字”这种形式,那么它在任意字符集下都可以正确显示。根据这个原理,我写了下面这个程序,它可以把现有的网页转化为在任意字符集下都能显示的网页。你只需要指定源网页的字符集和源网页,点提交按钮,就可以得到目标网页了。你也可以只转化某些文字,只需要把文字填写到文本框中,并指定这些文字原来的字符集,点提交按钮,就会在页面上面显示编码后的文字了。另外我还编写了 WordPress 的插件,现在我的 Blog 已经可以在任意字符集下都能正确显示了。

转化程序地址:http://test.coolcode.cn/nochaoscode/

施索华老师的博客

2005-08-04

上海交大,施索华老师:

一阵风吹落了两片树叶,一片落在了厅堂里,一片落在了土地上,落在厅堂上的没有什么高贵之处,落在土地上的也没有任何可以自卑的地方,偶然性而已。人不能够选择自己的出身,但人可以选择自己的前途,能够让气球起飞的是它里面的气体而不是颜色。于是认准自己脚下的路,一步一个脚印的走,前面定会一重天。

有的时候,生活中的苦难倒是一笔财富,尤其是年少的时候,会是你将来战胜困难的无形资产。花拳绣腿的人,风花雪月意气风发,但不适合骑马闯天下,因为笑傲江湖的,不是温室里的花朵。

爱情就像花开的花期,一个花期错过了,还有下一个花期,下一个花期比这一个花期可能开得更美。可是学业不能回头,大学毕业之后再回来重读一遍大学?那是不可能的,因此在大学里学业真的很重要。你现在要做好目前该做的事,今日事今日毕,时间久了就成习惯,好吗?

你读过卡耐基的书吗?他说“在现代社会,一个人的成功 15% 是靠专业技术与创造, 85% 是靠人际关系。”他说的这个数字是否科学暂且不论,但至少说明一点,在现代社会,无论科技如何的进步,一个人拥有了一台电脑便知晓了全世界,但也休想做到靠身居斗室孤军奋战而成就大业。社会越发展,科技越进步,越要靠分工合作和集团军作战,这就叫合力。

我记得卡耐基还说过这样的话“一个人如果真诚地关心别人,那么你在两个月内所交的朋友,要比以前总想在别人关心你的心理作用下,两年内所交的朋友还要多。”你试试看,先心存感激地对别人微笑,学会赞美别人,你会发现生活是那么的温馨和美好。

还记得我在课堂上说的话: 天上有一只小鸟在飞,一个人望着这只鸟说:“它真苦,四处扑腾,就为一口食。天上有一只小鸟在飞,一个人望着这只鸟说:“它多么幸福,我多么想像它一样有一双翅膀而自由飞翔。”一个脖子上戴着花环的演员在舞台上跳舞,随着她舞姿的扭动,花瓣纷纷落下,台下一个观众说:“哎,她脖子上剩下了一条绳子。”另一个观众说:“哇,她站在鲜花丛中。”心理学上这叫境由心造。

曾经有过一个禅师给他的徒弟一块小石头,让他到菜市场去卖掉。小徒弟来到了菜市场,把小石头摆在那里,过路人奇怪,人们纷纷围拢过来,一个年轻妇女说,这块小石头很光滑的,也很小巧,可以给我孩子做玩具;一位老年妇女说,这块小石头的形状很奇特,可以放在金鱼缸里做摆设;一位中年男子说,给这块小石头钻一个洞,可以做秤砣嘛。于是这块石头的价格可以买到五块钱。小徒弟回来对师傅讲可以买到五块钱,禅师又让他把石头放到首饰店去,人们在猜测,大概是一块玉吧,可以加工成一个玉坠,于是这块石头可以买到一百块钱。小徒弟再回来,禅师又让他到珠宝店去,这一回人们在猜测,大概是一块天然的,没经过打磨的钻石,最后,价格买到了一万块。小徒弟回来,禅师说:“记住,永远不要到菜市场去认定自己的价格,人生跟着自我认定走。”

http://jd.sjtu.edu.cn/ssh/