论坛风格切换切换到宽版
  • 1425阅读
  • 5回复

[问题求助][求助] 关于Linux中电飞华电力宽带上网问题 [复制链接]

上一主题 下一主题
离线rexon3105.
 
发帖
1946
C币
-235515
威望
362
贡献值
1
银元
-1
铜钱
4374
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
各位前辈,小弟昨日刚在本机上装了Suse L.inux 10.1。由于所在小区使用的是中电飞华的电力宽带,上网是通过中电飞华自己的.客.户端软件来进行认证登录,在这种情况下linux无法上网(中电飞华的工程师曾明确地表示过linux目前无法使用电力宽带)。我不得不再次使用windows上网,经过google和baidu,也查到一些关于这个问题的解决办法。(真抱歉,有些.长,.麻烦大家看完哈)             电子

方法1) .一位叫马路.遥maluyao的前辈曾经写过一篇解决这个问题的帖子:北京中电飞华电力猫在Linux/Unix 下上网的解决方案 。这个方案是通过写个小程序来实现网络的登录。程序包.括2个文件:.

“.先用写了个脚本(在同一行里) [成人用品]
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 、Fr.eeBSD以及其他Unix 的朋友们也帮我测试一下。 <性病>

执行:
fie.hua.sh |plc 教育

这样就可以成功认证了 ”

其中帖子.中所述PLC.C的代码如下:域名
//plc.c
#include   <sys./socket..h> [成人用品]
#include.   <netinet/.in.h>            鲜花
#include   <netdb.h>. .
#inclu.de   <stdio.h>     美容
#include  . <unistd.h> .
#define      F.IRST 0            女人
#defin.e      LAST 1 域名
int main(int argc,ch.ar *argv[]){. .
  . char *host; .
.  int sockfd;              电子
   int len,r.esult; 外贸
   st.ruct sockaddr_.in address; .
   struct ho.stent *hos.tinfo;              汽车
   .struct .servent *servinfo; 电脑
   char buffer[1.0];              汽车
   int   sid;
   .scanf("%d",&sid.); //读入sessionid ,用管道读入就最简单了 教育
/./   prin.tf("sid is %d\n",sid); 学习
  . host="211.160.92.162";. //服务器地址 服务器
   hostinfo=get.hostbyname(host); //直接.用ip的时候应该不用gethostbayname吧?但我不知道。     外汇
/*      .因为笔者的socket编程水平.实在比较菜,所以必需在/etc/services 中加入一行: 服务器
   plc  .           8.090/udp .
.  才能用下边的程序,那位大侠帮我改改。 .
   其实就是要向服务器的809.0端口.发个包而已。     外汇
*/
   servinfo=g.etservbyna.me("plc","udp");//老土了。 .
   sockfd=socke.t(AF_INET,SOCK_DGR.AM,0); .
   address.si.n_family.=AF_INET;              电子
   address.sin_p.or.t=servinfo->s_port; .
   address.sin_addr=*(struct in._addr *)*hostinfo-.>h_addr_list; .
   len=size.of(address); .
   buffer[0]=.0x05;/./第一个字段的数据 服务器
   int i;
   for (i=2;i<.7;i++) 健康
      buffer=0x00;. (        游戏          )
   .buffer[8]=session(sid,F.IRST); .
   buffer[9.]=session(sid,L.AST); .
   /* .根据s.essionid 算出最后两个数据的内容 */               乙肝
   printf(. "%d \n",sessi.on(sid,FIRST));//倒数第二个字段的数据 .
   printf( "%d .\n",ses.sion(sid,LAST));//最后一个字段的数据 --------------彩票
   while(1){
      buffer[1]=add(); .//每次加一个数。从零开始,.没有考虑超过256分钟的情况。              电子
      resu.lt=sendto(sockfd,.buffer,10,0,(struct sockaddr *)&address,len); .
      sleep(60);//等待60秒,应该有更好.的方法.吧。俺还不会用C的定时器。 外贸
   }
   exit(0);

}.//end of main --- 印刷
int session(const int sid,const i.nt flag){. .
   if(flag=.=FIRST) .
      return (sid&65280)>>8; //.倒数第二个字段, 6528.0 is 1111111100000000 服务器
   else
      return (sid&.255); //最后.一个字段。 .
}
int add(){
   s.tatic i=-1; 电影
   i++;
   return i;
}

我按照帖子所提供的方法去做,但程序好像在编译时就报错了.。我对.编程一窍不通,不知道问题出在什么地方。教育

方法2) 因为中电飞华的客户端是个小程序,据.网上信息描述,是个在.net下写成的。有网友建议安装.wine,然后再运行.那个客户端文件。目前我还没有尝试这个方法,不知是否有用。(广告)

上面就是小弟目前所掌握的信息,请各位前辈给予.帮助.,谢谢拉。.

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线免失志.
发帖
2221
C币
5540
威望
451
贡献值
0
银元
0
铜钱
5030
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-14
Re:[求助]
你用
feihua.sh  
能看到到哪个sessionid 么?
如果能,
告诉我你认证服务器的ip地址,我给你个最新版本的程序。

另外,某些地方可以用的的帐号,用ADSL(PPPoe)的方式拨号上去。但在我的小区,拨号上去很容易断,所以我总是用我自己写的哪个东西。

离线chaoran898.
发帖
2053
C币
-60843
威望
358
贡献值
1
银元
0
铜钱
4539
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-14
Re:[求助]


QUOTE:原帖由 maluyao 于 2007-4-14 11:44 发表于 2楼  
你用
feihua.sh  
能看到到哪个sessionid 么?
如果能,
告诉我你认证服务器的ip地址,我给你个最新版本的程序。

另外,某些地方可以用的的帐号,用ADSL(PPPoe)的方式拨号上去。但在我的小区,拨号上 ...


请问怎么操作?是在终端里运行feihua.sh吗?在终端里gcc plc.c时总是报错,不知是哪里的问题,我想可能程序需要改动,但我不知道如何改。
另外,认证服务器ip地址应该是211.160.88.202,因为每次在windows里登录成功后弹出的宽带服务网站就是这个地址。

离线yinghua568.
发帖
2106
C币
-193246
威望
397
贡献值
1
银元
-3
铜钱
4783
人人网人气币
0
只看该作者 地板  发表于: 2010-04-14
Re:[求助]
执行这个命令
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}'
或者简单一点:
curl -s -d "username=MY_USER_NAME&password=MYPASSWORD&serviceID=0&webserviceID=0&tempID=0"http://211.160.92.162/login.cgi grep SessionID

要写在一行里,另外把服务器地址和用户名密码都换成你自己的

离线灯笼芯.
发帖
2157
C币
-593606
威望
401
贡献值
2
银元
-4
铜钱
4843
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-14
Re:[求助]
run feihua.sh in you terminal

发帖
2055
C币
-235906
威望
360
贡献值
1
银元
-1
铜钱
4622
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-14
Re:[求助]
马大侠,我的电力猫是USB接口的,  这样也能行么?  我的意思是说,没有LINUX下USB猫的驱动, 根本无法ping通认证服务器吧?




QUOTE:原帖由 maluyao 于 2007-4-14 20:48 发表
run feihua.sh in you terminal

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个