From be708835511b2c60be12a341ffcd6a6edd8db0e7 Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Sat, 2 Apr 2022 12:19:35 +0100 Subject: [PATCH] Refactor WHOIS lookups to use hosted heroku app --- functions.php | 22 ++++++++++++++++++++++ post.php | 19 +++++-------------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/functions.php b/functions.php index b14b4f0b..b78c910e 100644 --- a/functions.php +++ b/functions.php @@ -400,4 +400,26 @@ function encryptUpgradeLoginEntry($login_password_cleartext, $site_encryption_ma return $login_password_ciphertext; } +// Get domain expiration date +function getDomainExpirationDate($name){ + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "https://itflow-whois.herokuapp.com/$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]); + } + else{ + $expiry = new DateTime($response['expiration_date']); + } + + return $expiry->format('Y-m-d'); + } + + // Default return + return '0000-00-00'; +} + ?> diff --git a/post.php b/post.php index 2363a2dd..0df63388 100644 --- a/post.php +++ b/post.php @@ -5756,13 +5756,11 @@ if(isset($_POST['add_domain'])){ $mx = strip_tags(mysqli_real_escape_string($mysqli,shell_exec("dig +short MX $domain"))); $whois = trim(strip_tags(mysqli_real_escape_string($mysqli,shell_exec("whois -H $domain | sed 's/ //g' | head -30")))); - // Get expiry date for com/org/net domains - This is very hacky. An API would be better. - if(!empty($whois && $expire == '0000-00-00')){ - if(substr($_POST['name'], -3) == 'com' OR substr($_POST['name'], -3) == 'org' OR substr($_POST['name'], -3) == 'net'){ - $pos = strpos($whois, 'Registry Expiry Date:'); - $expire = substr($whois, $pos+22,10); - } + // Get domain expiry date - if not specified + if($expire == '0000-00-00'){ + $expire = getDomainExpirationDate($name); } + } else{ $a = ''; @@ -5833,14 +5831,7 @@ if(isset($_POST['edit_domain'])){ $ns = strip_tags(mysqli_real_escape_string($mysqli,shell_exec("dig +short NS $domain"))); $mx = strip_tags(mysqli_real_escape_string($mysqli,shell_exec("dig +short MX $domain"))); $whois = trim(strip_tags(mysqli_real_escape_string($mysqli,shell_exec("whois -H $domain | sed 's/ //g' | head -30")))); - - // Get expiry date for com/org/net domains - This is very hacky. An API would be better. - if(!empty($whois)){ - if(substr($_POST['name'], -3) == 'com' OR substr($_POST['name'], -3) == 'org' OR substr($_POST['name'], -3) == 'net'){ - $pos = strpos($whois, 'Registry Expiry Date:'); - $expire = substr($whois, $pos+22,10); - } - } + $expire = getDomainExpirationDate($name); } else{ $a = '';