Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / network / tor / tor-connections @ 0a1524f2

Historique | Voir | Annoter | Télécharger (2,64 ko)

1
#!/usr/bin/php
2
<?php
3

    
4
$cookiepath = "/etc/tor/control_auth_cookie";
5
$controlport = 9051;
6

    
7

    
8
// Nothing to change down here...
9

    
10
$cmd = $argv['1'];
11

    
12
$cookie = file_get_contents($cookiepath);
13

    
14

    
15
if ($cmd == "config") {
16

    
17
	print "graph_title Connections\n";
18
	print "graph_args -l 0 --base 1000\n";
19
	print "graph_vlabel connections\n";
20
	print "graph_category Tor\n";
21
	print "graph_info This graph shows the number of Tor OR connections.\n";
22
	print "graph_period second\n";
23

    
24
	print "new.label new\n";
25
	print "new.type GAUGE\n";
26
	print "new.max 50000\n";
27
	print "new.min 0\n";
28

    
29
        print "launched.label launched\n";
30
        print "launched.type GAUGE\n";
31
        print "launched.max 50000\n";
32
        print "launched.min 0\n";
33

    
34
        print "connected.label connected\n";
35
        print "connected.type GAUGE\n";
36
        print "connected.max 50000\n";
37
        print "connected.min 0\n";
38

    
39
        print "failed.label failed\n";
40
        print "failed.type GAUGE\n";
41
        print "failed.max 50000\n";
42
        print "failed.min 0\n";
43

    
44
        print "closed.label closed\n";
45
        print "closed.type GAUGE\n";
46
        print "closed.max 50000\n";
47
        print "closed.min 0\n";
48

    
49

    
50

    
51
	exit;
52

    
53
} elseif ($cmd == "autoconf") {
54

    
55
	$socket = fsockopen("tcp://127.0.0.1", $controlport);
56
	fputs($socket, "AUTHENTICATE \"".$cookie."\"\n");
57

    
58
	$buffer = fgets($socket, 1024);
59
	if (ereg("250", $buffer)) echo "Yes";
60
	else echo "No (".trim($buffer).")";
61

    
62
	fclose($socket);
63
	exit;
64

    
65

    
66
}
67

    
68

    
69

    
70
$socket = fsockopen("tcp://127.0.0.1", $controlport);
71

    
72
fputs($socket, "AUTHENTICATE \"".$cookie."\"\n");
73

    
74
$buffer .= fgets($socket, 4096);
75

    
76
if (!ereg("250", $buffer)) {
77
	echo "Unable to connect to Tor ControlPort (".$buffer.")";
78
	fclose($socket);
79
	exit;
80
} else {
81

    
82
	$buffer = fputs($socket, "GETINFO orconn-status\n");
83

    
84
        $buffer = fgets($socket, 1024);
85
        $buffer = fgets($socket, 1024);
86

    
87
	while (strlen($buffer) > 3) {
88

    
89
		$bits = explode(" ", $buffer);
90

    
91
		$connections[trim($bits['1'])]++;
92

    
93
                $buffer = fgets($socket, 1024);
94

    
95

    
96
	}
97

    
98
	if (!empty($connections['NEW'])) echo "new.value ".$connections['NEW']."\n";
99
	else echo "new.value 0\n";
100

    
101
        if (!empty($connections['LAUNCHED'])) echo "launched.value ".$connections['LAUNCHED']."\n";
102
        else echo "launched.value 0\n";
103

    
104
        if (!empty($connections['CONNECTED'])) echo "connected.value ".$connections['CONNECTED']."\n";
105
        else echo "connected.value 0\n";
106

    
107
        if (!empty($connections['FAILED'])) echo "failed.value ".$connections['FAILED']."\n";
108
        else echo "failed.value 0\n";
109

    
110
        if (!empty($connections['CLOSED'])) echo "closed.value ".$connections['CLOSED']."\n";
111
        else echo "closed.value 0\n";
112

    
113

    
114
}
115

    
116
fclose($socket);
117

    
118
?>
119