Subversion Repositories vgwhois

Rev

Rev 3 | Rev 5 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
#!/usr/bin/php
2
<?php
3
 
4
#
5
#  generic Whois - Whois Server Ping Testing Suite
6
#
7
#  (c) 2013-2014 Daniel Marschall, ViaThinkSoft [www.viathinksoft.de]
8
#
9
#  Distribution, usage etc. pp. regulated by the current version of GPL.
10
#
11
#
12
#  Version 2014-11-23
13
#
14
 
15
error_reporting(E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED);
16
 
17
require_once __DIR__ . '/../../../shared/php_includes/common_functions.inc.php';
18
require_once __DIR__ . '/whoisping_functions.inc.php';
4 daniel-mar 19
require_once __DIR__ . '/../config.inc.php';
2 daniel-mar 20
 
4 daniel-mar 21
# ---
3 daniel-mar 22
 
23
if (!is_dir(dirname(WHOISPING_DB))) mkdir(dirname(WHOISPING_DB), 0755, true);
24
$db = new SQLite3(WHOISPING_DB); # TODO: in config auslagern
2 daniel-mar 25
if (!$db) die ($error);
26
 
27
gwitc_initdb($db);
28
 
29
$pattern_servers = array();
30
$pattern_files = getpatternfiles();
31
foreach ($pattern_files as &$pattern_file) {
32
	$pattern_servers_c = gwitc_list_whois_servers($pattern_file);
33
	$pattern_servers = array_merge($pattern_servers, $pattern_servers_c);
34
}
35
 
36
$dead_servers = array();
4 daniel-mar 37
$dead_servers_raw = file(DEAD_SERVER_LIST);
2 daniel-mar 38
foreach ($dead_servers_raw as &$server) {
39
	$server = trim($server);
40
	if ($server == '') continue;
41
	if ($server[0] == '#') continue;
42
 
43
	$dead_servers[] = $server;
44
}
45
 
46
# --- Check the servers in the pattern files
47
 
48
foreach ($pattern_servers as &$server) {
49
 
50
	// We will handle them below, not here. (Otherwise the recheck timer would be reset)
51
	if (in_array($server, $dead_servers)) {
52
		echo "[ !! ] Attention! $server is in dead-servers.list and pattern. Please remove one instance!\n";
53
		continue;
54
	}
55
 
56
	$age = gwitc_checkage_succ($db, $server);
57
	if ($age < RECHECK_AFTER) continue;
58
	$open = gwitc_is_port_open($server, 43);
59
	if ($open) {
60
		gwitc_reset_failcounter($db, $server);
61
		echo "OK: $server\n";
62
	} else {
63
		$fails = gwitc_incr_failcounter($db, $server);
64
		$duration = gwitc_fail_duration($db, $server);
65
		echo "FAIL #$fails: $server (Duration: $duration)\n";
66
	}
67
}
68
 
69
# --- Check the dead servers (which have been removed from the pattern list) have resurrected
70
 
71
foreach ($dead_servers as &$server) {
72
	$age = gwitc_checkage_check($db, $server);
73
	if ($age < RECHECK_AFTER) continue;
74
	$open = gwitc_is_port_open($server, 43);
75
	if ($open) {
76
		gwitc_set_reborn($db, $server, 1);
77
		echo "Attention: $server is ALIVE again! Please remove from maintenance/config/dead-servers.list and add to pattern.\n";
78
	} else {
79
		# wird bereits von gwitc_incr_failcounter() gemacht: gwitc_set_reborn($db, $server, 0);
80
		$fails = gwitc_incr_failcounter($db, $server); // hier wird auch lastcheck aktualisiert
81
		echo "Still dead: $server\n";
82
	}
83
}
84
 
85
$db->close();