diff --git a/class.php b/class.php index 69a6a62..b3553bf 100644 --- a/class.php +++ b/class.php @@ -722,10 +722,12 @@ class idlers extends helperFunctions $row = $select->fetch(); if ($row['has_yabs'] == 1 && $row['has_st'] == 1) { $select = $this->dbConnect()->prepare(" - SELECT servers.id as server_id,hostname,ipv4,ipv6,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v, + SELECT servers.id as server_id,hostname,ipv4,ipv4_asn,asn_v4.name,ipv6,ipv6_asn,asn_v6.name,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v, is_dedicated,is_cpu_dedicated,was_special,os,ssh_port,still_have,tags,notes,label,virt,has_yabs,has_st,ns1,ns2,DATE_FORMAT(`owned_since`, '%M %Y') as owned_since, `owned_since` as owned_since_raw, `4k`,`4k_type`,`64k`,`64k_type`,`512k`,`512k_type`,`1m`,`1m_type`, loc.name as location,send,send_type,recieve,recieve_type,price,currency,term,as_usd,per_month,usd_per_month,next_dd,pr.name as provider FROM servers INNER JOIN disk_speed ds on servers.id = ds.server_id + INNER JOIN asn AS asn_v4 ON servers.ipv4_asn = asn_v4.id + INNER JOIN asn AS asn_v6 ON servers.ipv6_asn = asn_v6.id INNER JOIN speed_tests st on servers.id = st.server_id INNER JOIN locations loc on servers.location = loc.id INNER JOIN providers pr on servers.provider = pr.id INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;"); $select->execute([$id]); @@ -737,21 +739,25 @@ class idlers extends helperFunctions return json_encode($final); } elseif ($row['has_yabs'] == 1 && $row['has_st'] == 0) { $select = $this->dbConnect()->prepare(" - SELECT servers.id as server_id,hostname,ipv4,ipv6,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v, + SELECT servers.id as server_id,hostname,ipv4,ipv4_asn,asn_v4.name,ipv6,ipv6_asn,asn_v6.name,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type,bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v, is_dedicated,is_cpu_dedicated,was_special,os,ssh_port,still_have,tags,notes,label,virt,has_yabs,has_st,ns1,ns2,DATE_FORMAT(`owned_since`, '%M %Y') as owned_since, `owned_since` as owned_since_raw, `4k`,`4k_type`,`64k`,`64k_type`,`512k`,`512k_type`,`1m`,`1m_type`, loc.name as location,price,currency,term,as_usd,per_month,usd_per_month,next_dd,pr.name as provider FROM servers INNER JOIN disk_speed ds on servers.id = ds.server_id - INNER JOIN locations loc on servers.location = loc.id + INNER JOIN asn AS asn_v4 ON servers.ipv4_asn = asn_v4.id + INNER JOIN asn AS asn_v6 ON servers.ipv6_asn = asn_v6.id + INNER JOIN locations loc on servers.location = loc.id INNER JOIN providers pr on servers.provider = pr.id INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;"); $select->execute([$id]); $data = $select->fetchAll(PDO::FETCH_ASSOC)[0]; return json_encode($data); } else { $select = $this->dbConnect()->prepare(" - SELECT servers.id as server_id,hostname,ipv4,ipv6,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type, + SELECT servers.id as server_id,hostname,ipv4,ipv4_asn,asn_v4.name,ipv6,ipv6_asn,asn_v6.name,`cpu`,cpu_type,cpu_freq,ram,ram_type,swap,swap_type,`disk`,disk_type, bandwidth,bandwidth_type,gb5_single,gb5_multi,gb5_id,aes_ni,amd_v,is_dedicated,is_cpu_dedicated,was_special,os,ssh_port,still_have,tags,notes,virt,has_yabs,ns1,ns2,label,has_st, DATE_FORMAT(`owned_since`, '%M %Y') as owned_since,loc.name as location,price,currency,term,as_usd,per_month,usd_per_month,next_dd,pr.name as provider FROM servers INNER JOIN locations loc on servers.location = loc.id + INNER JOIN asn AS asn_v4 ON servers.ipv4_asn = asn_v4.id + INNER JOIN asn AS asn_v6 ON servers.ipv6_asn = asn_v6.id INNER JOIN providers pr on servers.provider = pr.id INNER JOIN pricing on servers.id = pricing.server_id WHERE servers.id = ? LIMIT 1;"); $select->execute([$id]); $data = $select->fetchAll(PDO::FETCH_ASSOC)[0]; @@ -1350,16 +1356,27 @@ class idlers extends helperFunctions $this->textInput('me_ssh_port'); $this->tagClose('div', 3); - $this->rowColOpen('form-row', 'col-12'); + $this->rowColOpen('form-row', 'col-8'); $this->tagOpen('div', 'input-group'); $this->inputPrepend('IPv4'); $this->textInput('me_ipv4'); - $this->tagClose('div', 3); - $this->rowColOpen('form-row', 'col-12'); + $this->tagClose('div', 2); + $this->colOpen('col-4'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('ASN'); + $this->textInput('me_asn_ipv4'); + $this->tagClose('div', 3); + + $this->rowColOpen('form-row', 'col-8'); $this->tagOpen('div', 'input-group'); $this->inputPrepend('IPv6'); $this->textInput('me_ipv6'); - $this->tagClose('div', 3); + $this->tagClose('div', 2); + $this->colOpen('col-4'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('ASN'); + $this->textInput('me_asn_ipv6'); + $this->tagClose('div', 3); $this->rowColOpen('form-row', 'col-12 col-md-6 mm-col'); $this->tagOpen('div', 'input-group'); @@ -1990,30 +2007,40 @@ class idlers extends helperFunctions $this->CurrencySelectOptions(); $this->tagClose('select'); $this->tagClose('div', 3); + + $this->rowColOpen('form-row', 'col-md-3'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('IPv4'); + $this->textInput('ipv4', '', 'form-control', false, 4, 124); + $this->tagClose('div', 2); + $this->colOpen('col-md-3'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('IPv4 ASN'); + $this->textInput('asn_ipv4', '', 'form-control', true, 1, 999999, 1); + $this->tagClose('div', 2); + $this->colOpen('col-md-3'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('IPv6'); + $this->textInput('ipv6', '', 'form-control', false, 4, 124); + $this->tagClose('div', 2); + $this->colOpen('col-md-3'); + $this->tagOpen('div', 'input-group'); + $this->inputPrepend('IPv6 ASN'); + $this->textInput('asn_ipv6', '', 'form-control', true, 1, 999999, 1); + $this->tagClose('div', 3); $this->rowColOpen('form-row', 'col-12 col-md-4'); $this->tagOpen('div', 'input-group'); $this->inputPrepend('Label'); $this->textInput('label', '', 'form-control', false, 1, 24); $this->tagClose('div', 2); - $this->colOpen('col-12 col-md-4'); - $this->tagOpen('div', 'input-group'); - $this->inputPrepend('IPv4'); - $this->textInput('ipv4', '', 'form-control', false, 4, 124); - $this->tagClose('div', 2); - $this->colOpen('col-12 col-md-4'); - $this->tagOpen('div', 'input-group'); - $this->inputPrepend('IPv6'); - $this->textInput('ipv6', '', 'form-control', false, 4, 124); - $this->tagClose('div', 3); - - $this->rowColOpen('form-row', 'col-12 col-md-4'); + $this->colOpen('col-12 col-md-2'); $this->outputString(''); $this->tagClose('div'); $this->colOpen('col-12 col-md-2'); $this->outputString(''); $this->tagClose('div'); - $this->colOpen('col-12 col-md-4'); + $this->colOpen('col-12 col-md-2'); $this->outputString(''); $this->tagClose('div'); $this->colOpen('col-12 col-md-2'); diff --git a/my_idlers.sql b/my_idlers.sql index 2003731..4ff9201 100644 --- a/my_idlers.sql +++ b/my_idlers.sql @@ -10,6 +10,15 @@ CREATE DATABASE IF NOT EXISTS `idlers` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `idlers`; +-- Dumping structure for table my_idlers.asn +CREATE TABLE IF NOT EXISTS `asn` +( + `id` INT NOT NULL, + `name` VARCHAR(64) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = latin1; + -- Dumping structure for table my_idlers.disk_speed CREATE TABLE IF NOT EXISTS `disk_speed` ( @@ -296,7 +305,9 @@ CREATE TABLE IF NOT EXISTS `servers` `location` int(11) DEFAULT NULL, `provider` int(11) DEFAULT NULL, `ipv4` varchar(124) DEFAULT NULL, + `ipv4_asn` int(11) DEFAULT NULL, `ipv6` varchar(124) DEFAULT NULL, + `ipv6_asn` int(11) DEFAULT NULL, `ns1` varchar(124) DEFAULT NULL, `ns2` varchar(124) DEFAULT NULL, `virt` varchar(4) DEFAULT NULL, @@ -331,7 +342,9 @@ CREATE TABLE IF NOT EXISTS `servers` `has_yabs` tinyint(1) DEFAULT 0, `has_st` tinyint(1) DEFAULT 0, PRIMARY KEY (`id`), - UNIQUE KEY `Index 2` (`ipv4`, `hostname`, `ipv6`) + UNIQUE KEY `Index 2` (`ipv4`, `hostname`, `ipv6`), + FOREIGN KEY (`ipv4_asn`) REFERENCES `asn`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + FOREIGN KEY (`ipv6_asn`) REFERENCES `asn`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB DEFAULT CHARSET = latin1; diff --git a/update1.3to1.x.sql b/update1.3to1.x.sql new file mode 100644 index 0000000..d11d0ba --- /dev/null +++ b/update1.3to1.x.sql @@ -0,0 +1,6 @@ +CREATE TABLE `asn` ( `id` INT NOT NULL , `name` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB; + +ALTER TABLE `servers` ADD `ipv4_asn` INT NULL AFTER `ipv4`, ADD `ipv6_asn` INT NULL AFTER `ipv6`; +ALTER TABLE `servers` ADD FOREIGN KEY (`ipv4_asn`) REFERENCES `asn`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; +ALTER TABLE `servers` ADD FOREIGN KEY (`ipv6_asn`) REFERENCES `asn`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; +