# ↓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; }