# ↓2にすれば第2サーバーのデータ取得
$server = 1;
use Socket;
$rank = 1;
$flag = 2;
$hidden = 0;
if ( $server == 2 ) { $svr = "d"; }
else { $svr = "c"; }
$url = "http://gamespace24.net/godius/g_world/ranking.cgi";
$method = "POST";
$url =~ m|^http://([-_\.a-zA-Z0-9]+)/?(.*)$|;
$host = $1;
$path = $2;
while ($flag) {
print "$rank \n";
$data = &socket;
$i++;
foreach ( split( /\n/, $data ) ) {
if ( m|
更新日:20(\d\d)-(\d\d)-(\d\d)
| && $flag == "2" ) {
open( OUT, ">$svr$1$2$3.txt" );
$flag = 1;
}
if (m|(.*?) | |) {
if ( $name eq $1 && $name ne "---" ) { $flag = 0; last; }
$name = $1;
if ( $name eq "---" ) { $hidden++; }
}
elsif (m|guild/(\d+).gif|) {
$guild = $1;
}
elsif (m|AG (\d+) | |) {
$level = $1 + 99;
}
elsif (m|(\d+) | |) {
$level = $1;
}
elsif (m|(.*?) | |) {
$nationality = $1;
}
elsif (m| (\d*)|) {
$updown = $1;
$count = $2;
if ( $updown eq "stop" ) { $updown = "stay"; }
print OUT "$rank,$name,$guild,$nationality,$level,$count,$updown\n";
$guild = "noguild";
$count = "";
$rank++;
}
}
if ( $rank - $rankb < 100 ) { last; }
$rankb = $rank;
}
$rank--;
print "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n";
print "- - 終了 - - \n";
print "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n";
print "キャラ数:$rank 非表\示キャラ数:$hidden \n\n";
print "ENTERキーを押してください";
;
close(OUT);
sub socket {
$query = "from=$rank&server=$server";
$length = length($query);
$connect_host = $host;
$port = getservbyname( 'http', 'tcp' );
$iaddr = Socket::inet_aton($connect_host) || return;
$sock_addr = pack_sockaddr_in( $port, $iaddr );
socket( SOCKET, PF_INET, SOCK_STREAM, 0 ) || return;
connect( SOCKET, $sock_addr ) || return;
select(SOCKET);
$| = 1;
print "$method /$path HTTP/1.0\n";
print "Host: $host\n";
print "Content-Length: $length\n";
print "Connection: close\n\n";
print "$query";
select(STDOUT);
$data = "";
while () { $data .= $_; }
close(SOCKET);
return $data;
}