aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/functions_admin.php')
-rw-r--r--phpBB/includes/functions_admin.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php
index 3faef1a8de..0a3b994dbb 100644
--- a/phpBB/includes/functions_admin.php
+++ b/phpBB/includes/functions_admin.php
@@ -204,6 +204,49 @@ function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png')
return $matches;
}
+// Whois facility
+function ipwhois($ip)
+{
+ $ipwhois = '';
+
+ $match = array(
+ '#RIPE\.NET#is' => 'whois.ripe.net',
+ '#whois\.apnic\.net#is' => 'whois.apnic.net',
+ '#nic\.ad\.jp#is' => 'whois.nic.ad.jp',
+ '#whois\.registro\.br#is' => 'whois.registro.br'
+ );
+
+ if (($fsk = @fsockopen('whois.arin.net', 43)))
+ {
+ fputs($fsk, "$ip\n");
+ while (!feof($fsk))
+ {
+ $ipwhois .= fgets($fsk, 1024);
+ }
+ @fclose($fsk);
+ }
+
+ foreach (array_keys($match) as $server)
+ {
+ if (preg_match($server, $ipwhois))
+ {
+ $ipwhois = '';
+ if (($fsk = @fsockopen($match[$server], 43)))
+ {
+ fputs($fsk, "$ip\n");
+ while (!feof($fsk))
+ {
+ $ipwhois .= fgets($fsk, 1024);
+ }
+ @fclose($fsk);
+ }
+ break;
+ }
+ }
+
+ return $ipwhois;
+}
+
// Posts and topics manipulation
function move_topics($topic_ids, $forum_id, $auto_sync = TRUE)
{