2010-09-03 18:26:59 +00:00
#!/usr/bin/env php
2009-09-07 11:07:59 +00:00
<? php
2007-04-03 14:10:23 +00:00
include ( "config.php" );
include ( "includes/functions.php" );
2009-03-23 17:32:25 +00:00
echo ( "digraph G { sep=0.6; size= \" 40,20 \" ; pack=10; bgcolor=transparent;splines=true;
2009-03-02 18:12:09 +00:00
node [ fontname= \" helvetica \" , fontsize=38, fontstyle=bold, shape=box, style=bold];
2009-03-23 17:32:25 +00:00
edge [ labelfontsize=10, labelfontname= \" helvetica \" , overlap=false, fontstyle=bold];
2007-11-23 11:37:28 +00:00
graph [bgcolor=transparent, remincross=true];
" );
$linkdone = array ();
2007-04-03 14:10:23 +00:00
$x = 1 ;
2009-03-02 18:12:09 +00:00
$loc_sql = "SELECT * FROM devices GROUP BY location" ;
2007-11-23 11:37:28 +00:00
$loc_result = mysql_query ( $loc_sql );
while ( $loc_data = mysql_fetch_array ( $loc_result )) {
2008-09-08 10:10:49 +00:00
echo ( "subgraph \" " . $loc_data [ 'location' ] . " \" { \n
2007-11-23 11:37:28 +00:00
label = \" " . $loc_data [ 'location' ] . " \" ;
style=filled;
color=lightgrey; \n\n " );
2009-11-28 10:38:02 +00:00
$dev_sql = "SELECT * FROM devices WHERE location = '" . $loc_data [ 'location' ] . "' and (`os` LIKE '%ios%' OR `os` LIKE '%catos%') AND disabled = 0" ;
2007-11-23 11:37:28 +00:00
$dev_result = mysql_query ( $dev_sql );
while ( $dev_data = mysql_fetch_array ( $dev_result )) {
2009-03-02 18:12:09 +00:00
$device_id = $dev_data [ 'device_id' ];
2010-02-15 23:56:30 +00:00
# if(mysql_result(mysql_query("SELECT count(*) from links WHERE local_interface_id = '$device_id' OR remote_interface_id = '$device_id'"),0)) {
2007-04-03 14:10:23 +00:00
$host = $dev_data [ 'hostname' ];
unset ( $hostinfo );
2008-03-15 17:58:15 +00:00
if ( strpos ( $host , "cust." . $config [ 'mydomain' ])) { $hostinfo = "shape=egg style=filled fillcolor=pink" ; }
2009-03-02 18:12:09 +00:00
if ( strpos ( $host , "bas" )) { $hostinfo = "shape=rectangle style=filled fillcolor=skyblue" ; }
if ( strpos ( $host , "crs" )) { $hostinfo = "shape=box3d style=filled fillcolor=skyblue" ; }
2009-03-23 17:32:25 +00:00
if ( strpos ( $host , "lcr" )) { $hostinfo = "shape=tripleoctagon style=filled fillcolor=darkolivegreen4" ; }
if ( strpos ( $host , "ler" )) { $hostinfo = "shape=octagon style=filled fillcolor=darkolivegreen1" ; }
2009-03-02 18:12:09 +00:00
if ( strpos ( $host , "pbr" )) { $hostinfo = "shape=ellipse style=filled fillcolor=orange" ; }
2009-03-23 17:32:25 +00:00
if ( strpos ( $host , "tbr" )) { $hostinfo = "shape=ellipse style=filled fillcolor=orange" ; }
if ( strstr ( $host , "gwr" )) { $hostinfo = "shape=ellipse style=filled fillcolor=orange" ; }
if ( strpos ( $host , "bgw" )) { $hostinfo = "shape=ellipse style=filled fillcolor=orange" ; }
if ( strpos ( $host , "vax" )) { $hostinfo = "shape=rect style=filled fillcolor=skyblue" ; }
if ( strpos ( $host , "vsx" )) { $hostinfo = "shape=box3d style=filled fillcolor=skyblue" ; }
2007-04-03 14:10:23 +00:00
2010-01-31 17:30:16 +00:00
$host = $dev_data [ 'hostname' ];
2008-03-15 17:58:15 +00:00
$host = str_replace ( "." . $config [ 'mydomain' ], "" , $host );
2007-04-03 14:10:23 +00:00
echo ( " \" $host \" [ $hostinfo ]
2009-03-02 18:12:09 +00:00
" );
# }
2007-11-23 11:37:28 +00:00
}
echo ( " \n } \n " );
2007-04-03 14:10:23 +00:00
}
2010-02-20 17:22:22 +00:00
$links_sql = "SELECT *, X.ifDescr AS sif, I.ifDescr AS dif FROM links AS L, ports AS I, ports AS X, devices as D, devices as Y WHERE I.device_id = D.device_id AND X.device_id = Y.device_id AND L.local_interface_id = I.interface_id AND X.interface_id = L.remote_interface_id" ;
2009-03-02 18:12:09 +00:00
2007-04-03 14:10:23 +00:00
$links_result = mysql_query ( $links_sql );
while ( $link_data = mysql_fetch_array ( $links_result )) {
2010-02-15 23:56:30 +00:00
$local_interface_id = $link_data [ 'local_interface_id' ];
$remote_interface_id = $link_data [ 'remote_interface_id' ];
2007-04-03 14:10:23 +00:00
2010-02-20 17:22:22 +00:00
$sq = mysql_fetch_row ( mysql_query ( "SELECT `hostname`,`ifSpeed` FROM ports AS I, devices as D where I.device_id = D.device_id and I.interface_id = ' $local_interface_id '" ));
$dq = mysql_fetch_row ( mysql_query ( "SELECT `hostname`,`ifSpeed` FROM ports AS I, devices as D where I.device_id = D.device_id and I.interface_id = ' $remote_interface_id '" ));
2007-04-03 14:10:23 +00:00
$src = $sq [ 0 ];
$dst = $dq [ 0 ];
$src_speed = $sq [ 1 ];
$dst_speed = $dq [ 1 ];
2008-03-15 17:58:15 +00:00
$src = str_replace ( "." . $config [ 'mydomain' ], "" , $src );
$dst = str_replace ( "." . $config [ 'mydomain' ], "" , $dst );
2007-04-03 14:10:23 +00:00
$info = "" ;
2007-11-23 11:37:28 +00:00
if ( $src_speed >= "10000000000" ) {
2009-03-02 18:12:09 +00:00
$info .= "color=lightred weight=10 style= \" setlinewidth(8) \" " ;
2007-11-23 11:37:28 +00:00
} elseif ( $src_speed >= "1000000000" ) {
2009-03-02 18:12:09 +00:00
$info .= "color=lightblue weight=5 style= \" setlinewidth(4) \" " ;
2007-11-23 11:37:28 +00:00
} elseif ( $src_speed >= "100000000" ) {
2009-03-02 18:12:09 +00:00
$info .= "color=lightgrey weight=1 style= \" setlinewidth(2) \" " ;
2007-11-23 11:37:28 +00:00
} elseif ( $src_speed >= "10000000" ) {
2009-03-02 18:12:09 +00:00
$info .= "style= \" setlinewidth(1) \" weight=1" ;
2007-11-23 11:37:28 +00:00
}
2007-04-03 14:10:23 +00:00
unset ( $die );
$i = 0 ;
while ( $i < count ( $linkdone )) {
2010-01-31 17:30:16 +00:00
$thislink = " $dst " . $link_data [ 'dif' ] . " $src " . $link_data [ 'sif' ];
2007-04-03 14:10:23 +00:00
if ( $linkdone [ $i ] == $thislink ) { $die = "yes" ; }
$i ++ ;
}
2010-01-31 17:30:16 +00:00
$sif = makeshortif ( $link_data [ 'sif' ]);
$dif = makeshortif ( $link_data [ 'dif' ]);
2007-04-03 14:10:23 +00:00
if ( ! $die ){
2009-03-02 18:12:09 +00:00
echo ( " \" $src \" -> \" $dst \" [taillabel= \" $dif \" headlabel= \" $sif \" arrowhead=dot arrowtail=dot $info ]; \n " );
2008-03-18 13:35:17 +00:00
# echo("\"$src\" -> \"$dst\" [ arrowhead=none arrowtail=none $info];\n");
2010-01-31 17:30:16 +00:00
$linkdone [] = " $src " . $link_data [ 'sif' ] . " $dst " . $link_data [ 'dif' ];
2007-04-03 14:10:23 +00:00
$x ++ ;
}
}
echo ( "}" );
?>