您尚未登入。
#多线程制作方法
#首先把线程部分的代码放到一个函数中去,比如下面的 fun1
#
#然后执行 threads->create("函数名",参数1,参数2,....参数n); 就可以启动线程。
#线程内部自己做死循环,不然线程会退出的
#
#线程个数理论上很多,没问题的。
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "ip.txt",autosave => 1,));
$ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)');
$ua->default_headers->header( 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*');
$ua->default_headers->header( 'Accept-Language' => 'zh-cn');
$ua->default_headers->header( 'Accept-Encoding' => 'deflate');
$ua->default_headers->header( 'Host' => 's1122.com');
$ua->default_headers->header( 'Connection' => 'Keep-Alive');
$ua->default_headers->header( 'Cookie' => 'pma_theme=original; pma_lang=zh-gb2312; pma_charset=iso-8859-1');
$ua->timeout(10);
my $loginlang = "zh-cn";
my $loginuser = "cpf82007";
my $loginpass="2007";
my $loginusere = "cpf82006";
my $loginpasse="2006";
my $loginusert = "cpf82008";
my $loginpasst="2008";
my $uid;
my $uidtime = 0;
my $looptime = 0;
my $fasttime = 0;
while(1) #死循环,刷新 uid
{
if(time() - $uidtime > 300)
{
&checkuid();
&checkuide();
&checkuidt();
syserror(gmctime(time+28800) . " 登陆网站...");
$uidtime = time();
}
sleep(0.1); ##刷新间隔
}
sub checkuid
{
$uid = '';
my $luid;
while(!$luid)
{
my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=$loginlang");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$luid = $1;
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
my $url;
while(!$url)
{
$ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=$loginlang" );
my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
Content => [ uid => "$luid",
langx => "$loginlang",
username => "$loginuser",
passwd => "$loginpass",
]);
my $text = $response->as_string;
if($text =~ /\=\s*\'([^\']+)\'/is)
{
$url = $1;
}
elsif($text =~ /Plaese wait 3 minutes and try again/is)
{
syserror("等待 1 分钟");
sleep(60);
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
while(!$uid)
{
$ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
my $response = $ua->request(GET "$url");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$uid = $1;
my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
$dbh->do("update web_system set uid='$uid'");
$dbh->disconnect;
syserror("写入中文ID成功");
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
}
sub checkuide
{
$uid = '';
my $luid;
while(!$luid)
{
my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=en-us");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$luid = $1;
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
my $url;
while(!$url)
{
$ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=en-us" );
my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
Content => [ uid => "$luid",
langx => "en-us",
username => "$loginusere",
passwd => "$loginpasse",
]);
my $text = $response->as_string;
if($text =~ /\=\s*\'([^\']+)\'/is)
{
$url = $1;
}
elsif($text =~ /Plaese wait 3 minutes and try again/is)
{
syserror("等待 1 分钟e");
sleep(60);
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
while(!$uid)
{
$ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
my $response = $ua->request(GET "$url");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$uid = $1;
my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
$dbh->do("update web_system set uid_en='$uid'");
$dbh->disconnect;
syserror("写入英文ID成功");
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
}
sub checkuidt
{
$uid = '';
my $luid;
while(!$luid)
{
my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=zh-tw");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$luid = $1;
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
my $url;
while(!$url)
{
$ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=zh-tw" );
my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
Content => [ uid => "$luid",
langx => "zh-tw",
username => "$loginusert",
passwd => "$loginpasst",
]);
my $text = $response->as_string;
if($text =~ /\=\s*\'([^\']+)\'/is)
{
$url = $1;
}
elsif($text =~ /Plaese wait 3 minutes and try again/is)
{
syserror("等待 1 分钟e");
sleep(60);
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
$error = 0;
while(!$uid)
{
$ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
my $response = $ua->request(GET "$url");
my $text = $response->as_string;
if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
{
$uid = $1;
my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
$dbh->do("update web_system set uid_tw='$uid'");
syserror("写入繁体ID成功");
$dbh->disconnect;
}
#$error ++;
}
if($error == 10)
{
syserror("访问错误!");
exit;
}
}
最後修改: gzhichao (2007-06-23 16:55:51)
離線