Initial refactor of functions.php

This commit is contained in:
Zankaria
2024-01-31 15:32:22 +01:00
parent f45bc768fe
commit 3baa68c7b6
9 changed files with 680 additions and 645 deletions

71
inc/functions/net.php Normal file
View File

@@ -0,0 +1,71 @@
<?php // Networking related functions
defined('TINYBOARD') or exit;
function isIPv6() {
return strstr($_SERVER['REMOTE_ADDR'], ':') !== false;
}
function ReverseIPOctets($ip) {
return implode('.', array_reverse(explode('.', $ip)));
}
function rDNS($ip_addr) {
global $config;
if ($config['cache']['enabled'] && ($host = cache::get('rdns_' . $ip_addr))) {
return $host;
}
if (!$config['dns_system']) {
$host = gethostbyaddr($ip_addr);
} else {
$resp = shell_exec_error('host -W 3 ' . $ip_addr);
if (preg_match('/domain name pointer ([^\s]+)$/', $resp, $m)) {
$host = $m[1];
} else {
$host = $ip_addr;
}
}
$isip = filter_var($host, FILTER_VALIDATE_IP);
if ($config['fcrdns'] && !$isip && DNS($host) != $ip_addr) {
$host = $ip_addr;
}
if ($config['cache']['enabled']) {
cache::set('rdns_' . $ip_addr, $host);
}
return $host;
}
function DNS($host) {
global $config;
if ($config['cache']['enabled'] && ($ip_addr = cache::get('dns_' . $host))) {
return $ip_addr != '?' ? $ip_addr : false;
}
if (!$config['dns_system']) {
$ip_addr = gethostbyname($host);
if ($ip_addr == $host) {
$ip_addr = false;
}
} else {
$resp = shell_exec_error('host -W 1 ' . $host);
if (preg_match('/has address ([^\s]+)$/', $resp, $m)) {
$ip_addr = $m[1];
} else {
$ip_addr = false;
}
}
if ($config['cache']['enabled']) {
cache::set('dns_' . $host, $ip_addr !== false ? $ip_addr : '?');
}
return $ip_addr;
}