LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: whz81

电信宽带上网,fttx+lan,比较复杂,此法国内的宽带上网都可以了

[复制链接]
发表于 2003-8-18 20:09:44 | 显示全部楼层
应该是,我想,看看抓的包就应该清楚了,我已经把文件发给你了
发表于 2003-8-18 23:40:06 | 显示全部楼层
如果已经用前面的脚本通过认证,认证问题已经解决,现在就不需要认证包了。发给我的包内容太杂。

在Linux下用脚本通过认证通过后,你是否手动执行 dhcpcd ???请回答,已经问了第三次 。
如果回答是肯定的,那么,目前要解决的问题是如何生成 keep-alive.否则,需要解决ip 问题。

获得keep-alive:
你需要在下面的条件下抓包:
1。在win下,ie 中执行认证,通过认证后,确保只有ie 和计时窗运行
2。打开ethereal 开始抓包
3。等10-20分钟,这其间不要执行与网络有关的操作,干脆不做任何操作
3。停止抓包,保存

另外,在帖子中讲清楚你的***操作步骤,***环境和***返回***的结果,这样会减少不必要的麻烦。
发表于 2003-8-19 00:12:05 | 显示全部楼层
"在Linux下用脚本通过认证通过后,你是否手动执行 dhcpcd ???请回答,已经问了第三次 。
如果回答是肯定的,那么,目前要解决的问题是如何生成 keep-alive.否则,需要解决ip 问题。"



这个确实需要手动执行,如果不手动执行的话,无法获取新的ip

新的Keep alive 包我明天发给你
发表于 2003-8-19 12:20:41 | 显示全部楼层
新抓的包,我已经发到你的信箱了。
环境;windows XP+internet explorer,其他仅一个内存整理软件。
authorize为认证过程包,
keep_alive为花20分钟抓的keep alive包
发表于 2003-8-19 17:47:47 | 显示全部楼层
找到了,看看你所抓的包中,UDP 协议的包,应该是它了。

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

这是最简单的tcp/ip 通讯,可以在 C 中用 socket 编写,程序应该不超过100行。
Linux 程序设计专题讨论 中有这方面的讨论,网上也很多。
看看 kj501 板主的文章。

这里有用 python 实现的例子:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52302
PyHBClient.py 就比较适合你的要求。
发表于 2003-8-19 19:28:14 | 显示全部楼层
收到,我先看看能不能搞定,谢了先
如果我不能搞定,再找你
发表于 2003-8-19 19:57:29 | 显示全部楼层
最初由 zest 发表
* client 每 30 秒钟与 server 通讯一次
* server ip: 219.219.36.1       port: 8002
* client 发送的包中,data 为 10 byte,内容是 你的ip + 你的mac. 16进制
* server 收到后,给你发送 data 同样内容的包。


你的ip + 你的mac. 16进制?
这个能具体一点吗?
我以前从没有网络编程的经验,"你的ip + 你的mac. 16进制"内容怎么书写?
能否举个例子?在你给我的python例子种的"being!"应该就是发送的内容了吧?
在我这种情况下,是否不需要接受服务器的Udp数据包呢?如果是这样,我想就可以省掉许多事情了
发表于 2003-8-19 20:18:36 | 显示全部楼层
你的ip + 你的mac. 16进制?
这个能具体一点吗?
我以前从没有网络编程的经验,"你的ip + 你的mac. 16进制"内容怎么书写?
ip: db.db.24.09    mac: 00 e0 4d 00 33 e5
    219.219.36.9
ip可能每次不同,由dhcpcd 得到,mac 是固定的,你网卡的物理地址。
这些在你发过来udp 的 data 中。

能否举个例子?在你给我的python例子种的"being!"应该就是发送的内容了吧?
是,把being 换为ip+mac

在我这种情况下,是否不需要接受服务器的Udp数据包呢?如果是这样,我想就可以省掉许多事情了
不清楚,可以先试试。
发表于 2003-8-20 10:50:32 | 显示全部楼层
不行,我试过了
我得python程序如下:
#! /usr/bin/env python
#
# Filename: PyHBClient.py

"""
PyHeartBeat 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
from time import time, ctime, sleep

SERVERIP = '219.219.36.1'
HBPORT = 8002
BEATWAIT = 30
msg='ip: db.db.24.09 mac: 00 e0 4d 00 33 e5'

print "yHeartBeat client sending to IP %s , port %d" % \
    (SERVERIP, HBPORT)
print "\n*** Press Ctrl-C to stop ***\n"
while 1:
    hbsocket = socket(AF_INET, SOCK_DGRAM)
    hbsocket.sendto(msg, (SERVERIP, HBPORT))
    if __debug__:
        print "Time: %s" % ctime(time())
    sleep(BEATWAIT)

ip地址我已经实时的进行了更改
但仍然只能维持约3分钟的上网时间,此后就断了.
不知道我改的程序是否有问题,另外我是直接在终端里执行PyHBClient.py的
发表于 2003-8-20 13:00:20 | 显示全部楼层
msg='ip: db.db.24.09 mac: 00 e0 4d 00 33 e5'
不对

msg 的值应该是16进制。msg= ip+mac
msg=socket.inet_aton('192.168.101.103')+'\x00\xe0\x4d\x00\x33\xe5'

192.168.101.103应该替换为你本次的IP
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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