|
|
发表于 2004-8-8 02:52:57
|
显示全部楼层
下面是我的长宽认证程序,你自己看看。
因为我同时使用长宽和歌华,所以你要自己改一下。
- #!/usr/bin/perl
- use strict;
- use Switch;
- use HTML::Form;
- use LWP::UserAgent;
- use POSIX qw(strftime);
- my $dialog="whiptail";
- my $tmpfile="/tmp/isp.tmp";
- my $result;
- my $dev;
- my $myip;
- my $html="
- <form name='authform' action='http://211.161.45.9:3002/cgi-bin/authcgi_login' method='post'>
- <input type='hidden' name='sip' value='211.161.45.9'>
- <input type='hidden' name='uip' value='220.113.14.3'>
- <input type='hidden' name='url' value='www.linuxeden.com'>
- <input type='hidden' name='uact' value='login'>
- <input type='hidden' name='uact_status' value='1'>
- <input type='text' name='uid' size='32' value='' maxlength='32'>
- <input type='password' name='upwd' size='32' value='' maxlength='32'>
- <input type='hidden' name='vpn' value='0'>
- <input type='submit' name='go' value='用户登入' >
- <input type='hidden' name='btype' value='0'>
- </form>
- ";
- # Select ISP
- system ("$dialog --title 修改上网方式 --menu 请选择上网的ISP 10 20 2 1 长宽 2 歌华 2> $tmpfile");
- $result=getResult($tmpfile);
- SWITCH:
- {
- $result eq "1" &&
- do
- {
- print "长宽";
- &changeISP("eth2","220.113.14.1");
- };
- $result eq "2" &&
- do
- {
- print "歌华";
- &changeISP("eth1","219.236.0.1");
- };
- }
- system ("$dialog --title 修改成功 --msgbox 修改成功 10 20 2> $tmpfile");
- #{{{ changeISP()
- # Update dynamic domain name
- sub changeISP()
- {
- my $dev=shift(@_);
- my $gw=shift(@_);
- system("ifdown $dev && ifup $dev");
- while (system("route del default")==0)
- {
- # Delete each "default" gateway
- }
- system("route add default gw $gw");
- if ($dev eq "eth2")
- {
- &network_auth();
- }
-
- system("3322 $dev");
- }
- #}}}
- #{{{ getResult()
- # Read the dialog result from tmpfile
- sub getResult()
- {
- my $tmpfile=shift(@_);
- my $linebuffer;
- my $buffer;
-
- open(RESULT,$tmpfile);
- while ($linebuffer=<RESULT>)
- {
- $buffer=$buffer.$linebuffer;
- }
- return($buffer);
- }
- #}}}
- #{{{ getIP()
- sub getIP()
- {
- my $dev=shift(@_);
- if ($dev eq "")
- {
- #print "Using default device\n";
- $dev="eth0";
- }
- open(IP,"ifconfig $dev |");
- my $ip;
- my $inline;
- while ($inline=<IP>)
- {
- #print $inline;
- $ip.=$inline;
- }
- $ip=~ /(\d+\.)+\d+/g;
- return($&);
- }
- #}}}
- #{{{ network_auth()
- sub network_auth
- {
- # Submit the filled form to authorize
- my $myip=&getIP("eth2");
- print "$myip\n";
- my $method='POST';
- my $action_uri='http://211.161.45.9:3002/cgi-bin/authcgi_login';
- my $enctype='multi-part/form-data';
-
- my @f=HTML::Form->parse($html,'authform');
- #my $form=HTML::Form->new( $method, $action_uri, $enctype );
- my $form=shift @f;
- my $ua = LWP::UserAgent->new;
- $ua->cookie_jar({ file => "/tmp/cookies.txt" });
- $form->value('sip','211.161.45.9');
- $form->value('uip',$myip);
- $form->value('url','www.linuxeden.com');
- $form->value('uact','login');
- $form->value('uact_status','0');
- $form->value('uid','010010007282');
- $form->value('upwd','');
- #$form->value('remuser','1');
- $form->value('vpn','0');
- $form->value('go','用户登入');
- $form->value('btype','0');
- #$form->value('jap','0');
-
- my $response=$ua->request($form->make_request);
- print $response->content."\n";
-
- }
- #}}}
复制代码 |
|