长宽的 WS 以及我的自动登录/注销工具

虽然我家长宽不限时,但是每次还是要登录,是网页形式的。于是我搞了个java版的登录工具,还有图形界面版本,各平台都能用~某日,发现长宽无论如何登录不上去,显示登录用户名/密码错误,明显在瞎搞。打电话找长宽,很久以后来了一个人,说我的帐号被锁了? 打了个电话就好了。后经研究,发现长宽改变了策略:网页登录后,会自动弹出窗口,要求关机前按里面的钮注销。长宽来的那个人还推荐了一个软件,深圳某人出的,说什么自动登录/注销。 但是此软件很破烂。每次我手动用其注销都会导致非法操作,而重启进 BSD 的话,会发现还是登不进去,明显此软件没有自动注销…… 也就是说,和我写的东西功能差不多了……后来,通过一个下午的研发,我又搞出了注销工具,利用登录工具保存的信息来注销。我设置 BSD 开机时登录,关机时注销,工作得很好~长宽之后貌似又把策略改回去了:一段时间没有网络流量(应该是对于登录记录的IP),就自动注销。这样,每次 Win 转 BSD 后一段时间,就又可以登录了~ 打算以后 Win 也用我的工具,不用长宽那个~附:其实长宽判断注销的条件很简单,你登录的时候,它会给你一个序列号,注销的时候只是看你给的帐号和序列号是不是配对…… 连密码都不要,IP 好像也不管。理论上通过枚举,完全可以把别人注销掉~

长城宽带

五月份,家里的ADSL包年到期。鉴于电信因为近乎垄断而越来越霸道的行为和更加霸道的价格,打算换一种。 正好长城宽带(以下简称长宽)到家里附近来推销。长宽其实在我家那片铺好线已经很多时候了,但是从前听说长宽是整幢楼共用带宽,人多了就会很慢,而且从前担心长城宽带的生存能力,所以没有选择。现在,经过咨询,得知长宽现在技术进步了,05年以后就是限制并且独享带宽了,而价格又比电信便宜很多。 于是,家里现在就改用长城宽带了,1500元/15个月,带宽1Mbps(也就是128KBps)。长宽不用猫,使用网线直接连到门外的一个盒子里,再连到整幢楼的集线的地方,最后用光纤连接出去。地址采用DHCP动态分配,貌似是独立地址,eMule之类的可以以HighID模式运行,看来外面是能够访问我这边的端口的。 但是长宽每次上网,打开的第一个页面总是登陆页面,要登陆之后,才能畅通无阻。这个导致我在FreeBSD的命令行下面不能上网(命令行下的浏览器Links在处理这个页面的时候会崩溃掉),于是起念写一个自动登陆的东西。经过几天和Java的纠缠,写了一个命令行的和图形的,其实就是抓下那个登陆页面,提取信息,然后发送登陆信息,再抓结果,分析分析,看看能不能成功。目前这个东西已经比较稳定了,我在Windows和FreeBSD都令其自动启动,省事。否则爸妈会觉得麻烦的…… 长宽的下载速度还是不错的,常常能到118KBps,比电信的稍快一些。但是RTT(延迟时间)稍长一些,看来长宽还是借道而走啊。

Project: TimeCountJava

用来计时的东西,设计出来的时候是给我家的宽带计时用的,所以和上网/断网这个功能结合得太紧密了,现在正在考虑分开来。其实就是一个计时工具,能够对一小段一小段的时间进行统计,得出每月总和,每日总和,并且能够浏览历史记录。因为是用来统计上网时间的,所以还有上网和断网的功能。虽然是用Java写的,但是貌似Java没有上下网的方法。所以,需要针对各个系统写一个用来上网/下网的小程序。我现在Windows里面用的是rasphone(系统自带),FreeBSD下面我写了一个ppp的wrapper脚本,这个脚本应该是通用unix-like系统的。以后要增加达到限制提醒功能,另外多一些配置功能,…… Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64265.aspx

.Net under unix-like systems: mono

MS看着Java凭借着可移植性占领了广大的市场,自然不甘心,于是搞出了.Net——MS版Java。实话说,.Net和Java很多地方差不多的……由于.Net需要可移植性,因此.Net程序里面其实并不是机器码——实际上是MS的一种中间代码,也就是经过了一半编译过程的代码。既然是独立于系统的,.Net也就很容易被移植到MS没有兴趣/不想移植的系统上。由此,mono便诞生了——可以在Linux/BSD/unix-like上跑.Net程序。貌似mono自己写了.Net的一大堆类库(当然很多还没有写出来…… 但可以混混了~)。从前装好mono,运行的时候,报告gdiplus.dll找不到。我把Windows下面那个搬到了很多地方,都没有用。今天再试,突然想到可能需要原生的gdiplus,一看,果然发现有libgdiplus这个port,装好之后出现了gdiplus.so等。再运行,就没有原先的问题了。但是,mono的不完整的实现还是限制了使用…… 我用它运行从前写的ReadAsBmp程序(能够把一个文件的任何部分当作Bmp处理等),基本上可以用,但是PictureBox的Load() mono 没有实现,载入外部图像的时候就挂掉了。而另一个 NewLines 程序 (其实功能和常见的WinLinez差不多,五个珠子连起来就消掉的小游戏,为了解决自动缩放/存盘/跨平台等功能而自己写的,给我妈玩……)由于Form.set_MainMenuStrip() mono  没有实现,窗口都没出来就挂掉了,看来目前还不能使用菜单部分啊~总的来说,mono 已经不错了,只要能够完善类库,比起Java还是很有竞争力的。

Reading:《Thinking in C++》

从图书馆老师那里借来一本《Thinking in C++》,很快就要还的,看得很快。 从前看《Thinking in Java》,现在看这本,发现Eckel的书都写得很好。每次我看了一段之后,无论有什么疑惑,他都会在接下来的文字中给予解答,简直就是知道我在想什么,我不知道什么。可能这个减低了自我思考能力,但是如果都靠自我思考,自我发现,还要书干什么?书的一个重要作用就是减少你自己摸索和学习的时间的么~ 我原来的C++知识很混乱,都是东一点西一点看见的,再加上自己的摸索,用到的时候网上的资料,还有看别人写的代码,总之就是杂乱无章。因此需要一本书来理一遍,补充原来不知道的,完善原来知道一些的,复习本来知道的。现在终于有时间了。 学的时候,还发现C++的一些有趣的现象,还发现VC6不是ISO C++的实现,在MinGW编译不过的东西VC6竟然能跑,而static const的class member貌似VC6还不支持…… 难道VC6出来的时候ISO C++标准没出来? 习题没时间做了,反正看一遍,在心里做一遍,也差不多了。估计下周能够看完吧…… 接着再看Vol 2 咯。