网站自动登录实现---刷在线时间

不知道大家有没这样的经验,有些网站下载东西需要积分,而在线时间可以积累积分,但是网页15分钟就会超时,你需要一直开着浏览器并刷新,要是有个脚本一直在后台跑着就好了,24小时在线,这就是我要写的内容:

  • 仿照登录界面做了个伪表单界面,提交,成功登录,密码不加密(危险啊),看来很简单。(登录多次失败才会要求验证码)。
  • 使用Perl LWP写了个提交脚本:
#!/usr/bin/perl

use strict;
use warnings;
use Encode;
use Net::INET6Glue::INET_is_INET6;
use LWP;
use LWP::Simple;
use HTTP::Cookies;
use HTTP::Response;
use HTTP::Request;

# 这里的网站是IPV6地址,访问网站主页没问题,但是访问下面的页面时会报HTTP 500错误
# 所以上面引入了Net::INET6Glue::INET_is_INET6,使用ipv6访问
my $url = "http://网站地址/logging.php?action=login";
my $name = "username";
my %form = (
         "username" => $name,
        "password" => "password",
        # 分析伪表单的抓包数据后发现,表单会自动加上下面的参数,所以加上下面的
         # 如果不加总是登录不上去,返回的网页是重新登录界面
        "loginsubmit" => "true"
        );

my  $browser = LWP::UserAgent->new;

my  $response = $browser->post($url,\%form);
if ($response->is_success) {
    print encode("GBK", $response->decoded_content); 
    print "\n";
}
else {
    print $response->decoded_content;
    die $response->status_line;
}

最初测试脚本时是在服务器上测试的,总是Http 500 错误,在Google上搜索发现需要引入INET_is_INET6,不报500错误了,但是返回的界面是重新登录界面。只好抓个包分析一下,发现使用ethereal抓包时,混杂模式启动不了,抓不了其他主机的包,只好在自己机器上安装Perl 来测试。
于是下载ActivePerl,但是在安装模块时出现问题, ,又换成Strawberry Perl,安装INET_is_INET6时同样出错,查看了下是一个依赖包Socket6安装不上,找不到inet_ntop 和inet_pton,又去查资料,发现是个bug,解决方法如下:

单独下载Socket6的包,解包,修改Socket6.xs,代码前添加如下内容:

#define HAVE_INET_PTON 1

#ifdef __MINGW32__
#include "inet_ntop.c"
#include "inet_pton.c"
#endif

#ifndef HAVE_PL_SV_UNDEF
#define PL_sv_undef sv_undef
#endif

然后手动安装:

$ dmake
$ dmake test
$ dmake install

再次安装INET_is_INET6搞定,运行,抓包,发现脚本提交表单时没有loginsubmit=true参数,修改,运行,成功。

  • 最后写个shell脚本,循环登录:
#!/bin/sh

for i in `seq 1000000`
do
        ./autologin.pl > log.htm 2>&1
        sleep 10m
done

 

搞了一上午,遇到了很多问题,各种没遇到过的错误,然后一一解决,写起来却轻松多了。但是能解决实际问题,用所学习的东西来实现自己的想法,这种感觉真爽。哈哈,记下了,希望遇到同样问题的可以参考。

 

 

转载于:https://www.cnblogs.com/D3Hunter/archive/2012/06/25/2562815.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值