#!/usr/bin/perl # i system version get script by masato-3 (masato@orange.co.jp) # modified by yar-3 # 2000/06/12 first version use Socket; while (<>) { chomp; next if /^\s*#/; # url,title,author,date とさだめると /(.*),(.*),(.*),(.*)/; my $url = $1; my $title = $2; my $author = $3; my $d = $4; #date of start isystem $d = " " if ($d eq ""); # my $url = $_; my $tophtml = &get_html_text($url); my $ver; # print $tophtml; if ($tophtml =~ /i *system *ver *([\d.]+)/) { $ver = $1; } else { $ver = 'unknown'; } print "$title"; print "$authorver.$ver"; print "$d\n"; } exit 0; # 自前でHTMLテキストを得る sub get_html_text ($) { my ($url) = @_; my $intext = ''; local (*IN); return '' if ($url eq ''); my ($h, $d, $server, $file) = split(/\//, $url, 4); my ($server, $port)= split(/\:/, $server); $port = 80 if ($port eq ''); $remote_address = sockaddr_in($port, inet_aton($server)); $proto = getprotobyname('tcp'); socket(IN,PF_INET,SOCK_STREAM,$proto) || die "Socket: $!"; my $c = 0; do { $result = connect(IN, $remote_address); if ($c++ >= 10) { return < CONNECT ERROR Connect Error! EOF } if ($result != 1) { sleep(1); } } while ($result != 1); select((select(IN), $| = 1)[0]); print IN "GET /$file HTTP/1.0\r\n"; print IN "Referer: $h\r\n"; print IN "Host: $server\r\n"; print IN "Accept: */*\r\n"; print IN "User-Agent: GET-IVERSION (ONCGW)\r\n"; print IN "Connection: close\n"; print IN "\r\n"; #header 非表示 while () { m/^\r\n$/ && last; } $intext .= $_ while (); close IN; $intext; }