diff --git a/client_domain_edit_modal.php b/client_domain_edit_modal.php index a475154e..9a3c0bff 100644 --- a/client_domain_edit_modal.php +++ b/client_domain_edit_modal.php @@ -72,6 +72,16 @@
+
+ +
+
+ +
+ +
+
+
@@ -89,7 +99,7 @@
- +
diff --git a/client_domains.php b/client_domains.php index 41c2c87c..94b7d38c 100644 --- a/client_domains.php +++ b/client_domains.php @@ -168,6 +168,7 @@ include("client_domain_add_modal.php"); document.getElementById("editDomainId").value = domain_id; document.getElementById("editDomainName").value = domain.domain_name; document.getElementById("editExpire").value = domain.domain_expire; + document.getElementById("editDomainIP").value = domain.domain_ip; document.getElementById("editNameServers").value = domain.domain_name_servers; document.getElementById("editMailServers").value = domain.domain_mail_servers; document.getElementById("editRawWhois").value = domain.domain_raw_whois; diff --git a/db.sql b/db.sql index 81307296..078d3db5 100644 --- a/db.sql +++ b/db.sql @@ -431,9 +431,10 @@ CREATE TABLE `domains` ( `domain_id` int(11) NOT NULL AUTO_INCREMENT, `domain_name` varchar(200) NOT NULL, `domain_expire` date DEFAULT NULL, - `domain_name_servers` VARCHAR(255) NULL DEFAULT NULL, - `domain_mail_servers` VARCHAR(255) NULL DEFAULT NULL, - `domain_raw_whois` TEXT NULL DEFAULT NULL, + `domain_ip` varchar(255) DEFAULT NULL, + `domain_name_servers` varchar(255) DEFAULT NULL, + `domain_mail_servers` varchar(255) DEFAULT NULL, + `domain_raw_whois` text DEFAULT NULL, `domain_created_at` datetime NOT NULL, `domain_updated_at` datetime DEFAULT NULL, `domain_archived_at` datetime DEFAULT NULL, diff --git a/post.php b/post.php index b7783370..e9202ddb 100644 --- a/post.php +++ b/post.php @@ -5283,17 +5283,27 @@ if(isset($_POST['add_domain'])){ // NS, MX and WHOIS data if(filter_var($name, FILTER_VALIDATE_DOMAIN) && (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')){ $domain = escapeshellarg($name); + $a = strip_tags(mysqli_real_escape_string($mysqli,shell_exec("dig +short $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 && $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); + } + } } else{ - $ns = ''; - $mx = ''; - $whois = ''; + $a = ''; + $ns = ''; + $mx = ''; + $whois = ''; } - mysqli_query($mysqli,"INSERT INTO domains SET domain_name = '$name', domain_registrar = $registrar, domain_webhost = $webhost, domain_expire = '$expire', domain_name_servers = '$ns', domain_mail_servers = '$mx', domain_raw_whois = '$whois', domain_created_at = NOW(), domain_client_id = $client_id, company_id = $session_company_id"); + mysqli_query($mysqli,"INSERT INTO domains SET domain_name = '$name', domain_registrar = $registrar, domain_webhost = $webhost, domain_expire = '$expire', domain_ip = '$a', domain_name_servers = '$ns', domain_mail_servers = '$mx', domain_raw_whois = '$whois', domain_created_at = NOW(), domain_client_id = $client_id, company_id = $session_company_id"); //Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Domain', log_action = 'Created', log_description = '$name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id"); @@ -5312,23 +5322,33 @@ if(isset($_POST['edit_domain'])){ $webhost = intval($_POST['webhost']); $expire = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['expire']))); if(empty($expire)){ - $expire = "0000-00-00"; + $expire = "0000-00-00"; } - // NS, MX and WHOIS data + // A, NS, MX and WHOIS data if(filter_var($name, FILTER_VALIDATE_DOMAIN) && (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')){ - $domain = escapeshellarg($name); - $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")))); + $domain = escapeshellarg($name); + $a = strip_tags(mysqli_real_escape_string($mysqli,shell_exec("dig +short $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); + } + } } else{ - $ns = ''; - $mx = ''; - $whois = ''; + $a = ''; + $ns = ''; + $mx = ''; + $whois = ''; } - mysqli_query($mysqli,"UPDATE domains SET domain_name = '$name', domain_registrar = $registrar, domain_webhost = $webhost, domain_expire = '$expire', domain_name_servers = '$ns', domain_mail_servers = '$mx', domain_raw_whois = '$whois', domain_updated_at = NOW() WHERE domain_id = $domain_id AND company_id = $session_company_id"); + mysqli_query($mysqli,"UPDATE domains SET domain_name = '$name', domain_registrar = $registrar, domain_webhost = $webhost, domain_expire = '$expire', domain_ip = '$a', domain_name_servers = '$ns', domain_mail_servers = '$mx', domain_raw_whois = '$whois', domain_updated_at = NOW() WHERE domain_id = $domain_id AND company_id = $session_company_id"); //Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Domain', log_action = 'Modified', log_description = '$name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");