summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlist-servers34
1 files changed, 34 insertions, 0 deletions
diff --git a/list-servers b/list-servers
new file mode 100755
index 0000000..9cec17b
--- /dev/null
+++ b/list-servers
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+use strict;
+my $in_connect = 0;
+my $ipv6;
+my $host;
+my $name;
+while (<>) {
+ if (/^connect /) {
+ $in_connect = 1;
+ $name = undef;
+ $host = undef;
+ $ipv6 = undef;
+ } elsif (/^\};/) {
+ $in_connect = 0;
+ if (defined $name && defined $host) {
+ print "$name $host\n";
+ print "$name"."6 $ipv6\n" if defined $ipv6;
+ $name = undef;
+ $host = undef;
+ $ipv6 = undef;
+ }
+ } elsif ($in_connect) {
+ if (/^\s*name\s*=\s*"(\S+)\.oftc.net";\s*$/) {
+ $name = $1;
+ } elsif (/^\s*host\s*=\s*"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})";\s*$/) {
+ $host = $1;
+ } elsif (/^\s*#\s*ipv6\s*address:\s*([0-9a-f:]+)/) {
+ $ipv6 = $1;
+ };
+ };
+};
+
+