1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Canonical List of All Pingers</TITLE>
<META name="Description" content="Canonical List of All Pingers">
<META name="Keywords" content="pinger, stats, statistics, remailer, reliability, anonymous, nym, mixmaster">
</HEAD>
<BODY bgcolor="#aaaaaa" text="#000000" LINK="#0000ff" ALINK="#ff0000" VLINK="#ff0000">
<TABLE cellpadding=0 cellspacing=0 width="100%">
<TR><TD colspan=2 bgcolor="#444444"><FONT color="#ffffff"><A href="/"><FONT color="#bbbbff">www.noreply.org</FONT></A> :: All Pingers</FONT></TD></TR>
<TR><TD colspan=2 bgcolor="#ffffff"> </TD></TR>
<TR><TD bgcolor="#ffffff"> </TD>
<TD bgcolor="#ffffff">
<h1>Canonical List of All Pingers</h1>
<p>
<table border=1>
<tr>
<th>Pinger</th>
<th>CPunk V1</th>
<th>CPunk V2</th>
<th>Mix V1</th>
<th>Mix V2</th>
<th>rchain</th>
<th>PGP Keyring</th>
<th>Mix Keyring</th>
<th>Comment</th>
</tr>
<:
use warnings;
use strict;
sub join_links($$) {
my ($a, $b) = @_;
if (defined $a) {
if (defined $b) {
return $a.' '.$b;
} else {
return $a;
};
} else {
if (defined $b) {
return $b;
} else {
return ' ';
};
};
};
open(F,"allpingers.txt") or die("Could not open allpingers.txt: $!");
my $source;
my %pinger;
while(<F>) {
s/\s*(.*)\s*/$1/;
next if (/^\s*#/);
$source = $1, next if (/^\[(.*)\]$/);
if (/(.+?)\s*=\s*(.+)/) {
$pinger{$source}->{$1} = $2 if defined $source;
};
}
close(F);
for $source (sort keys %pinger) {
print("<TR>\n");
printf('<td><a href="%s">%s</a></td>', $pinger{$source}->{base}, $source);
my $r1_t = sprintf('<a href="%s">T</a>', $pinger{$source}->{rlist} ) if defined $pinger{$source}->{rlist};
my $r1_h = sprintf('<a href="%s">H</a>', $pinger{$source}->{rlist_html} ) if defined $pinger{$source}->{rlist_html};
my $r2_t = sprintf('<a href="%s">T</a>', $pinger{$source}->{rlist2} ) if defined $pinger{$source}->{rlist2};
my $r2_h = sprintf('<a href="%s">H</a>', $pinger{$source}->{rlist2_html}) if defined $pinger{$source}->{rlist2_html};
my $m1_t = sprintf('<a href="%s">T</a>', $pinger{$source}->{mlist} ) if defined $pinger{$source}->{mlist};
my $m1_h = sprintf('<a href="%s">H</a>', $pinger{$source}->{mlist_html} ) if defined $pinger{$source}->{mlist_html};
my $m2_t = sprintf('<a href="%s">T</a>', $pinger{$source}->{mlist2} ) if defined $pinger{$source}->{mlist2};
my $m2_h = sprintf('<a href="%s">H</a>', $pinger{$source}->{mlist2_html}) if defined $pinger{$source}->{mlist2_html};
my $rchain_t = sprintf('<a href="%s">T</a>', $pinger{$source}->{rchain} ) if defined $pinger{$source}->{rchain};
my $rchain_h = sprintf('<a href="%s">H</a>', $pinger{$source}->{rchain_html}) if defined $pinger{$source}->{rchain_html};
my $pgp = sprintf('<a href="%s">ALL</a>', $pinger{$source}->{pgpring} ) if defined $pinger{$source}->{pgpring};
my $pgp_rsa = sprintf('<a href="%s">RSA</a>', $pinger{$source}->{pgpring_rsa}) if defined $pinger{$source}->{pgpring_rsa};
my $mixring = sprintf('<a href="%s"><code>pubring.mix</code></a>', $pinger{$source}->{mixring} ) if defined $pinger{$source}->{mixring};
my $typelist = sprintf('<a href="%s"><code>type2.list</code></a>', $pinger{$source}->{type2list} ) if defined $pinger{$source}->{type2list};
my $comment = $pinger{$source}->{comment};
printf('<td align="center">%s</td>', join_links($r1_t, $r1_h));
printf('<td align="center">%s</td>', join_links($r2_t, $r2_h));
printf('<td align="center">%s</td>', join_links($m1_t, $m1_h));
printf('<td align="center">%s</td>', join_links($m2_t, $m2_h));
printf('<td align="center">%s</td>', join_links($rchain_t, $rchain_h));
printf('<td align="center">%s</td>', join_links($pgp, $pgp_rsa));
printf('<td align="center">%s</td>', join_links($mixring, $typelist));
printf('<td align="left">%s</td>', (defined $comment && $comment ne '') ? $comment : ' ');
print("</TR>\n");
}
:>
</table>
<p>
If anything is wrong/broken/needs to be added/removed please mail the maintainer at <a href="mailto:web@palfrader.org">web@palfrader.org</a>.
<p>
The canonical list of all pingers in a machine readable format can be
found here: <a href="allpingers.txt"><code>allpingers.txt</code></a>.
It was last updated <: print scalar gmtime() :>.
<p>
For testing purposes I've also generated an <a href="allpingers.xml">XML
document</a> with all pingers. Feedback especially on the DTD is very
much apprechiated.
#<hr>
#<p>
#A similar list can be found at Frog's: <a href="http://www.privacyresources.org/frogadmin/Pingers.html">http://www.privacyresources.org/frogadmin/Pingers.html</a>.
</TD></TR>
<TR><TD colspan=2 bgcolor="#ffffff"> </TD></TR>
<TR><TD colspan=2 bgcolor="#444444"><FONT color="#ffffff"><EM><a href="mailto:web@palfrader.org"><font color="#bbbbff">web@palfrader.org</font></a></EM> -
<a href="http://validator.w3.org/check/referer"><font color="#bbbbff">Valid HTML 4.01!</font></a></FONT></TD></TR>
</TABLE>
</BODY>
</HTML>
|