电力猫在Linux/Unix下上网的解决方案
作者:马路遥 来源:Chinaunix 添加时间:2006-5-26 13:50:43先用写了个脚本(在同一行里)
curl -s -d "username=MY_USER_NAME&password
=MYPASSWORD&serviceID=0&webserviceID=0&tempID
=0"http://211.160.92.162/login.cgi grep SessionID
|grep VALUE |awk -F '=' '{print $3}' |awk -F '>' '{print $1}'
我把这个脚本命名为feihua.sh ,加上755 的权限,放到/usr/local/bin 里。当然要把MY_USER_NAME和MYPASSWORD换成自己的用户名和密码。
这个脚本的返回结果就是sessionid.
用C语言写了下列程序。本人的C 语言比较菜。仅仅是对付能用.(程序名称为plc.c ,放在最后)
gcc plc.c -o /usr/local/bin/plc
程序在Redhat AS4 上编译和运行都没问题,希望使用其他版本Linux 、FreeBSD以及其他Unix 的朋友们也帮我测试一下。
执行:
feihua.sh |plc
这样就可以成功认证了。
后记:
05末年装了个电力猫,这也是我所在小区宽带的唯一选择。因为多数用linux工作。很不爽。
刚开始用crontab 调用curl 每分钟进行一次web 验证,虽然也能对付,但实在是不舒服。
因为怀疑所谓的华为认证是比较复杂的机制。也许还涉及到加密解密(现在想想,基本不可能实现)和其他的底层问题。
决定从C语言入手,搞定这个问题。
笔者的编程经验虽然可以追溯到18年前使用Fortran语言,java/perl/php/vb/shell 等都会,但都是业余水平。
以前也自学过C,除了指针之外,基本都懂了。有点象只能使用机枪而不能使用大炮的坦克手。
在06年春节其间,为了学习C,从谭浩强到 K&R 的书都看了几遍。算是基本理顺了指针。
但随后发现,为了彻底弄清楚C,先得看看数据结构。
又发现理解数据结构,还要研究离散数学。反正又大把的时间。索性就这么看下去。
又弄了几本Unix下C编程的书。这些该死的作者都把Socket编程放到最后。我还没看到呢。
拿出sniffer 抓一下包,才发现这么简单。早知道抄个java或perl程序,也许半个钟头就搞定了.
既然已经看了这么多C,下一步想把我本本上Ti 的读卡器、1394、pcmcia卡三合一芯片的Linux驱动搞定。这对我来说,估计是个复杂的工作了,希望在笔记本报废之前,能够完成这个工作。
暂时靠讲授Linux课程吃饭。勉强也能养家糊口,十年磨一剑,又如何.
感谢南京的新梦网友在两年前(2004,那时候他还是高中生)提供的帮助和思路.
(e129)