diff options
Diffstat (limited to 'scan-sixxs.pl')
-rwxr-xr-x | scan-sixxs.pl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scan-sixxs.pl b/scan-sixxs.pl new file mode 100755 index 0000000..663bf70 --- /dev/null +++ b/scan-sixxs.pl @@ -0,0 +1,32 @@ +#! /usr/bin/perl + +# Scan the SIXXS pops page, +# Screen scrape it to generate the CHECK_PREFIX lines in mod_ip.c + + # Output will be like +# CHECK_PREFIX("2001:14b8:100::/40","fihel01.sixxs.net dna"); +# CHECK_PREFIX("2001:15c0:65ff::/48","simbx01.sixxs.net amis"); +# CHECK_PREFIX("2001:15c0:6600::/40","simbx01.sixxs.net amis"); + + +use strict; +use LWP::Simple qw(get); + +my $top_url = "http://www.sixxs.net/pops/prefixes/"; +my $top_html = get($top_url); +my @lines = split( /\n/, $top_html ); +@lines = grep( m#/tools/whois#, @lines ); +foreach my $line (@lines) { + if ( $line =~ m#href="/tools/whois/\?(\S+?)">\1# ) { + my ($ip) = $1; + if ( $line =~ + m#<td>(?:Subnets|Tunnels)</td><td><a href="\.\./(.*?)/">(\S+)</a></td><td><a href=".*?">(.*?)</a></td></tr>$# + ) + { + print <<"EOF"; +\t\tmod_ip_prefix $ip "$2\.sixxs.net $1" +EOF + } + } +} + |