ASGraph

This is drawing a proper network of autonomous systems on Google Maps.

Traceroute
";
$trace = file("/home/httpd/html/data/mtr.txt");
foreach ($trace as $rekord)
{
echo $rekord.'
';
}

$l_hostow = 0;

foreach ($trace as $rekord)
{
if (substr($rekord, 3, 1) != '*')
$l_hostow++;
}

echo "
";
echo "
";
echo "Liczba hostów: ".$l_hostow = $l_hostow - 1;
echo "
";
echo "
";
echo "Pozyskane adresy IP
";
$adresy = array();
for ($i=1; $i<=$l_hostow; $i++) { $z = strpos($trace[$i], "."); $ip2 = substr($trace[$i], $z+2); $z = strpos($ip2, " "); $ip2 = substr($ip2, 0, $z); $adresy[$i-1] = $ip2; } foreach ($adresy as $adres) { echo $adres.'
';
}

echo "
";
echo "
";

echo "Uzyskane systemy AS
";
$j = 0;
$route = array();
$aesy = array();

for ($i=0; $i<$l_hostow; $i++) { echo 'AS: '.++$j.'
';
system("whois -h whois.radb.net $adresy[$i] > /home/nookie/public_html/psw/data/whois.txt");
$whois = file("/home/nookie/public_html/psw/data/whois.txt");
echo $whois[0].'
';
$r = substr($whois[0], 7);
$route[$i] = $r;
if (substr($whois[2], 0, 6) != 'origin')
{
foreach ($whois as $rekord)
{
if (substr($rekord, 0, 6) == 'origin')
{
$as = substr($rekord, 8);
echo $as.'

';
$aesy[$i] = $as;
/*if ($adresy[$i] != sprawdz($adresy[$i]))
{

dodaj($adresy[$i], substr($whois[0], 7), $as, $adresy[$i+1]);
}*/

}
}
}
else
{
$as = substr($whois[2], 8);
echo $as.'

';
$aesy[$i] = $as;
/*if ($adresy[$i] != sprawdz($adresy[$i]))
{
dodaj($adresy[$i], substr($whois[0], 7), $as);
}*/

}
}
// include "inc/connect.php";
// podłączamy plik polaczenie.php

include "inc/connect.php";
$j = 1;
if ($db)
{
for ($i=0; $i<$l_hostow; $i++) { //if (sprawdz_adres($adresy[$i]) == 0) //{ dodaj($adresy[$i], $route[$i], $aesy[$i], $aesy[$j], $db); echo $adresy[$i].'
';
echo $route[$i].'
';
echo $aesy[$i].'
';
echo $aesy[$j].'
';
$j++;
//}
}

}
else echo "Brak połączenia z bazą danych MySQL!";
mysqli_close($db);

include "inc/stopka.php";
?>

Sprawdzanie, czy host odpowiada:
';
echo 'pingowanie...
';
echo "$host";

system("ping -q -w 4 $host > /home/httpd/html/data/ping.txt");
flush();
sleep(4);
//$ping = file("/home/httpd/html/ping.txt");
/*foreach ($ping as $rekord)
{
echo $rekord.'
';
}

echo "
";
echo "
";
*/
system("mtr -n -r $host > /home/httpd/html/data/mtr.txt");
//$trace = file("/home/httpd/html/traceroute.txt");
/*foreach ($trace as $rekord)
{
echo $rekord.'
';
}

echo $ilosc = count($trace);
*/
echo "
procesy ping, traceroute i whois zakończone
";
echo "Wyniki";

}else echo "Nie podano adresu IP";

include "inc/stopka.php";
?>

'$nast'";
$result = mysqli_query($db, $query);
//$ile = mysqli_num_rows($result);
/*if ($ile > 1)
{

} elseif ($ile == 1)
{*/
$row = mysqli_fetch_array($result);
$as = $row['origin'];
$nast = $row['nastepnik'];
$i++;
$sciezka[$i] = $as;
//}
}

for ($i=1; $i<=count($sciezka); $i++) echo $sciezka[$i].'
';

//}

?>

";
// łączymy się z bazą danych
// @mysqli_select_db($mysql_db)
mysqli_select_db ($link, $mysql_db)
or die('Błąd wyboru bazy danych.');
// połączenie nawiązane
echo "Udało się połączyć z konkretną bazą dancych!

";
}*/

?>

--
-- Struktura tabeli dla `aesy`
--

CREATE TABLE `aesy` (
`id` mediumint(8) NOT NULL auto_increment,
`origin` varchar(7) NOT NULL default 'Unknown',
`ip_aesa` varchar(18) NOT NULL default 'Not found',
`prefix` varchar(25) NOT NULL default 'Not found',
`as_org_name` varchar(50) NOT NULL default 'Not found',
`org_name` varchar(50) NOT NULL default 'Not found',
`net_name` varchar(50) NOT NULL default 'Not found',
`latitude` varchar(9) NOT NULL default 'Not found',
`longitute` varchar(9) NOT NULL default 'Not found',
`city` varchar(30) NOT NULL default 'Not found',
`region` varchar(30) NOT NULL default 'Not found',
`country` varchar(30) NOT NULL default 'Not found',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Struktura tabeli dla `as_prev`
--

CREATE TABLE `as_prev` (
`id` mediumint(8) NOT NULL auto_increment,
`as_id` mediumint(8) default NULL,
`id_as_prev` mediumint(8) default NULL,
PRIMARY KEY (`id`),
KEY `as_id` (`as_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Struktura tabeli dla `as_next`
--

CREATE TABLE `as_next` (
`id` mediumint(8) NOT NULL auto_increment,
`as_id` mediumint(8) default NULL,
`id_as_next` mediumint(8) default NULL,
PRIMARY KEY (`id`),
KEY `as_id` (`as_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Ograniczenia dla tabeli `aesy`

ALTER TABLE `as_prev` ADD CONSTRAINT `as_prev_ibfk_1` FOREIGN KEY (`as_id`) REFERENCES `aesy` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `as_next` ADD CONSTRAINT `as_next_ibfk_2` FOREIGN KEY (`as_id`) REFERENCES `aesy` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

INSERT INTO `aesy` VALUES (1, 'AS5000', '128.0.0.1', '128.0.0.1/24', 'Wirtualna Polska', 'WP.PL', 'WASK', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');
INSERT INTO `aesy` VALUES (2, 'AS8888', '200.0.0.1', '200.0.0.1/24', 'Onet', 'ONET.PL', 'RIPE', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');
INSERT INTO `aesy` VALUES (3, 'AS6000', '150.0.0.1', '150.0.0.1/24', 'Wirtualna Polska', 'WP.PL', 'WASK', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');
INSERT INTO `aesy` VALUES (4, 'AS2222', '180.0.0.1', '150.0.0.1/24', 'Wirtualna Polska', 'WP.PL', 'WASK', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');
INSERT INTO `aesy` VALUES (5, 'AS3333', '160.0.0.1', '150.0.0.1/24', 'Wirtualna Polska', 'WP.PL', 'WASK', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');
INSERT INTO `aesy` VALUES (6, 'AS6666', '160.0.0.1', '150.0.0.1/24', 'Wirtualna Polska', 'WP.PL', 'WASK', '70.0000', '-80.05556', 'Warszawa', 'Mazowsze', 'Polska');

INSERT INTO `as_prev` VALUES (1, 1, 0);
INSERT INTO `as_prev` VALUES (2, 2, 1);
INSERT INTO `as_prev` VALUES (3, 4, 3);
INSERT INTO `as_prev` VALUES (4, 6, 5);
INSERT INTO `as_prev` VALUES (5, 6, 4);
INSERT INTO `as_prev` VALUES (6, 5, 4);
INSERT INTO `as_prev` VALUES (7, 4, 2);
INSERT INTO `as_prev` VALUES (8, 3, 1);
INSERT INTO `as_prev` VALUES (9, 3, 2);

INSERT INTO `as_next` VALUES (1, 1, 2);
INSERT INTO `as_next` VALUES (2, 2, 3);
INSERT INTO `as_next` VALUES (3, 5, 6);
INSERT INTO `as_next` VALUES (4, 4, 5);
INSERT INTO `as_next` VALUES (5, 6, 0);
INSERT INTO `as_next` VALUES (6, 1, 3);
INSERT INTO `as_next` VALUES (7, 3, 5);
INSERT INTO `as_next` VALUES (8, 3, 4);
INSERT INTO `as_next` VALUES (9, 4, 3);

Leave a Reply

whatever you do or fix please test it afterwards, better however do not fix things that work, wait until they break otherwise feel the wrath of dummy users.