Merge branch 'master' into techbar
This commit is contained in:
172
functions.php
172
functions.php
@@ -380,36 +380,6 @@ function encryptLoginEntry($login_password_cleartext)
|
||||
return $iv . $ciphertext;
|
||||
}
|
||||
|
||||
// Get domain expiration date
|
||||
function getDomainExpirationDate($name)
|
||||
{
|
||||
|
||||
// Only run if we think the domain is valid
|
||||
if (!filter_var($name, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)) {
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, "http://lookup.itflow.org:8080/$name");
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$response = json_decode(curl_exec($ch), 1);
|
||||
|
||||
if ($response) {
|
||||
if (is_array($response['expiration_date'])) {
|
||||
$expiry = new DateTime($response['expiration_date'][1]);
|
||||
} elseif (isset($response['expiration_date'])) {
|
||||
$expiry = new DateTime($response['expiration_date']);
|
||||
} else {
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
return $expiry->format('Y-m-d');
|
||||
}
|
||||
|
||||
// Default return
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
// Get domain general info (whois + NS/A/MX records)
|
||||
function getDomainRecords($name)
|
||||
{
|
||||
@@ -1221,4 +1191,144 @@ function fetchUpdates() {
|
||||
|
||||
return $updates;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Get domain expiration date -- Remove in the future Replace with PHP function
|
||||
function getDomainExpirationDateOLD($name)
|
||||
{
|
||||
|
||||
// Only run if we think the domain is valid
|
||||
if (!filter_var($name, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)) {
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, "http://lookup.itflow.org:8080/$name");
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$response = json_decode(curl_exec($ch), 1);
|
||||
|
||||
if ($response) {
|
||||
if (is_array($response['expiration_date'])) {
|
||||
$expiry = new DateTime($response['expiration_date'][1]);
|
||||
} elseif (isset($response['expiration_date'])) {
|
||||
$expiry = new DateTime($response['expiration_date']);
|
||||
} else {
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
return $expiry->format('Y-m-d');
|
||||
}
|
||||
|
||||
// Default return
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
function getDomainExpirationDate($domain) {
|
||||
// Execute the whois command
|
||||
$result = shell_exec("whois " . escapeshellarg($domain));
|
||||
if (!$result) {
|
||||
return null; // Return null if WHOIS query fails
|
||||
}
|
||||
|
||||
$expireDate = '';
|
||||
|
||||
// Regular expressions to match different date formats
|
||||
$patterns = [
|
||||
'/Expiration Date: (.+)/',
|
||||
'/Registry Expiry Date: (.+)/',
|
||||
'/expires: (.+)/',
|
||||
'/Expiry Date: (.+)/',
|
||||
'/renewal date: (.+)/',
|
||||
'/Expires On: (.+)/',
|
||||
'/paid-till: (.+)/',
|
||||
'/Expiration Time: (.+)/',
|
||||
'/\[Expires on\]\s+(.+)/',
|
||||
'/expire: (.+)/',
|
||||
'/validity: (.+)/',
|
||||
'/Expires on.*: (.+)/i',
|
||||
'/Expiry on.*: (.+)/i',
|
||||
'/renewal: (.+)/i',
|
||||
'/Expir\w+ Date: (.+)/i',
|
||||
'/Valid Until: (.+)/i',
|
||||
'/Valid until: (.+)/i',
|
||||
'/expire-date: (.+)/i',
|
||||
'/Expiration Date: (.+)/i',
|
||||
'/Registry Expiry Date: (.+)/i',
|
||||
'/Expire Date: (.+)/i',
|
||||
'/expiry: (.+)/i',
|
||||
'/expires: (.+)/i',
|
||||
'/Registry Expiry Date: (.+)/i',
|
||||
'/Expiration Time: (.+)/i',
|
||||
'/validity: (.+)/i',
|
||||
'/expires: (.+)/i',
|
||||
'/paid-till: (.+)/i',
|
||||
'/Expire Date: (.+)/i',
|
||||
'/Expiration Date: (.+)/i',
|
||||
'/expire: (.+)/i',
|
||||
'/expiry: (.+)/i',
|
||||
'/renewal date: (.+)/i',
|
||||
'/Expiration Date: (.+)/i',
|
||||
'/Expiration Time: (.+)/i',
|
||||
'/Expires: (.+)/i',
|
||||
];
|
||||
|
||||
// Known date formats
|
||||
$knownFormats = [
|
||||
"d-M-Y",
|
||||
"d-F-Y",
|
||||
"d-m-Y",
|
||||
"Y-m-d",
|
||||
"d.m.Y",
|
||||
"Y.m.d",
|
||||
"Y/m/d",
|
||||
"Y/m/d H:i:s",
|
||||
"Ymd",
|
||||
"Ymd H:i:s",
|
||||
"d/m/Y",
|
||||
"Y. m. d.",
|
||||
"Y.m.d H:i:s",
|
||||
"d-M-Y H:i:s",
|
||||
"D M d H:i:s T Y",
|
||||
"D M d Y",
|
||||
"Y-m-d\TH:i:s",
|
||||
"Y-m-d\TH:i:s\Z",
|
||||
"Y-m-d H:i:s\Z",
|
||||
"Y-m-d H:i:s",
|
||||
"d M Y H:i:s",
|
||||
"d/m/Y H:i:s",
|
||||
"d/m/Y H:i:s T",
|
||||
"B d Y",
|
||||
"d.m.Y H:i:s",
|
||||
"before M-Y",
|
||||
"before Y-m-d",
|
||||
"before Ymd",
|
||||
"Y-m-d H:i:s (\T\Z\Z)",
|
||||
"Y-M-d.",
|
||||
];
|
||||
|
||||
// Check each pattern to find a match
|
||||
foreach ($patterns as $pattern) {
|
||||
if (preg_match($pattern, $result, $matches)) {
|
||||
$expireDate = trim($matches[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($expireDate) {
|
||||
// Try parsing with known formats
|
||||
foreach ($knownFormats as $format) {
|
||||
$parsedDate = DateTime::createFromFormat($format, $expireDate);
|
||||
if ($parsedDate && $parsedDate->format($format) === $expireDate) {
|
||||
return $parsedDate->format('Y-m-d');
|
||||
}
|
||||
}
|
||||
|
||||
// If none of the formats matched, try to parse it directly
|
||||
$parsedDate = date_create($expireDate);
|
||||
if ($parsedDate) {
|
||||
return $parsedDate->format('Y-m-d');
|
||||
}
|
||||
}
|
||||
|
||||
return null; // Return null if expiration date is not found
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user