LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1560|回复: 12

南京联创web认证攻略fttb+lan

[复制链接]
发表于 2003-8-22 16:42:06 | 显示全部楼层 |阅读模式
首先,感谢zest在这期间给予的帮助,要是没有他,这个linux上网的问题肯定解决不了。

现在切入正题,我们这儿使用的联创的web认证,认证页面index.jsp无法下载下来,也就不能用whz81兄提供的上网方法了。

我们这儿上网通过了两次dhcp,一次是机器启动时分得的192.168.4.*的局域网ip,然后通过web认证,可获取有效上网ip,认证结束后弹出的aps.exe常驻右下角系统栏负责计时和想网关发送keep-alive包
首先在windows正常上网,用ethereal 抓取上网认证的数据包和keep alive包(此过程不要开其他任何能发送网络数据包的程序),经过zest分析,keep alive包的内容为本机ip+16进制MAC地址,且客户端每30秒向网关发送一次

zest原文如下:

UDP 协议的包
特征如下:
* client 每 30 秒钟与 server 通讯一次
* server ip: 219.219.36.1 port: 8002
* client 发送的包中,data 为 10 byte,内容是 你的ip + 你的mac. 16进制
* server 收到后,给你发送 data 同样内容的包。

于是,我们可以用python脚本自己构造一个keep alive包发送程序,每30秒发送一次keep alive包

原脚本由zest收集,本人根据情况稍作修改,代码如下:

#! /usr/bin/env python
#
# Filename: send.py

"""
client
It sends out an UDP packet every 30 seconds
Please adjust the constant parameters as needed
"""

from socket import socket, AF_INET, SOCK_DGRAM,inet_aton
from time import time, ctime, sleep

print "\n##############################################################################\n"
print "            linux客户端  CUMT  公网版\n"
print "程序环境Python\n    下载地址:ftp://202.119.199.88/incoming/soft\n说明:\n    本客户端包含两个文件send.sh和 send.py,使用时请直接执行send.sh,\n把ip地址的最后一个字段输入,回车即可\n    使用前请把send.py中的MAC地址改成你自己的网卡的MAC地址"
print "##############################################################################\n"
myip=raw_input("请输入你的ip地址218.3.194.")
myip='218.3.194.'+myip
print "\n你的ip",myip
SERVERIP = '218.3.194.1'
HBPORT = 8002
BEATWAIT = 30
msg=inet_aton(myip)+'\x00\xe0\x4d\x00\x33\xe5'  #加号后的单引号内的内容为网卡MAC地址
print ""
#print "client sending to IP %s , port %d" % \
#    (SERVERIP, HBPORT)
print "\n***客户端运行中 ,按 Ctrl-C 终止,***\n***你现在可以上网了***\n"
while 1:
    hbsocket = socket(AF_INET, SOCK_DGRAM)
    hbsocket.sendto(msg, (SERVERIP, HBPORT))
    if __debug__:
       print "Time: %s" % ctime(time())
    sleep(BEATWAIT)



另外附send.sh

#!/bin/bash
echo
dhclient eth0
echo
echo "     以上bound to 后的ip地址为你所获得的ip地址,请在下面相应位置填入相应数值"
./send.py

注意,send.py和send.sh要放在同一目录下
1、使用前,请先安装python,下载地址:http://www.python.org/download/,
     也可到ftp://202.119.199.88/incoming/soft/homenet下载2.3版的
2、在使用前,请把send.py中的网卡MAC地址部分改成你自己的网卡MAC地址,格式不变
3、如果你是使用多网卡,请把send.sh中的eth0改为相应的连接internet的网卡设备名,相应的把send.py中的网卡MAC地址改成你连接internet的那块网卡的MAC地址
3、登陆web认证主页,按照windows下的情况正常登陆
4、当浏览器中出现“用户登陆中~”时,过3,4秒中后在终端下执行send.sh
     按照相关提示完成操作即可。
5、若系统提示”没有权限“,请用命令"chmod +x 文件名"更改文件执行权限
6、若一次登陆不成功,请先用CTRL+C终止客户端程序,用命令dhclient eth0重新获取局域网ip,再从头开始登陆web认证主页重新登陆

至此,成功登陆网络

此程序由两大缺点,一是不能让程序自动获取ip,二是不能让程序自动获取网卡mac地址,若是能将此两项解决,应该是比较完美了
发表于 2003-8-22 17:42:54 | 显示全部楼层

回复: 南京联创web认证攻略fttb+lan

最初由 藕节 发表


此程序由两大缺点,一是不能让程序自动获取ip,二是不能让程序自动获取网卡mac地址,若是能将此两项解决,应该是比较完美了


好。

解决方法可参考以前的帖子:

http://www.linuxsir.cn/forum.php ... 15&pagenumber=2
 楼主| 发表于 2003-8-22 17:49:13 | 显示全部楼层
感觉不好实现
 楼主| 发表于 2003-8-22 17:52:22 | 显示全部楼层
最好是能在python中实现
 楼主| 发表于 2003-8-22 17:53:15 | 显示全部楼层
如果能给程序加一个字符认证界面就更好了
发表于 2003-8-22 18:19:25 | 显示全部楼层
这些都已经实现了。用shell 和 curl 或 python
http://www.linuxsir.cn/postnuke/ ... rticle&sid=1066
 楼主| 发表于 2003-8-23 17:33:24 | 显示全部楼层
你给的python认证程序出错了
“ params = urllib.urlencode({'connectname': '',”
这儿的小括号附近语法错误
发表于 2003-8-23 17:48:03 | 显示全部楼层
自动排版问题,下面几行应该缩进。python 的语法
 楼主| 发表于 2003-8-23 17:51:11 | 显示全部楼层
呵呵,差点忘了
发表于 2003-9-1 17:09:09 | 显示全部楼层
藕节  你矿大哪个学院的啊
这个方法在redhat9中能用吗  我也是矿大的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表