Mercurial > hg > anonet-resdb
view doc/ucis.ano/bgp_graph/bgp_path_list_xml.php @ 1160:d88d62854d0b draft
Merge git://1.41.41.1/
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Tue, 11 Mar 2014 00:05:21 +0100 |
parents | 15b952d82e4c |
children |
line wrap: on
line source
#!/usr/bin/php <?php $mynode = array_key_exists('LOCALNODE',$_SERVER)?$_SERVER['LOCALNODE']:0; $file = STDIN; $paths = array(); while (!feof($file)) { if (seekto($file, '<as-path>') === FALSE) break; seekto($file, '<segment'); seekto($file, '>'); $endofsection = FALSE; $path = $mynode; while (!feof($file)) { if (seekto($file, '<') === FALSE) break; switch (fread($file, 4)) { case 'asn>': break; case '/seg': $endofsection = TRUE; break; default: die('unknown tag at '.(ftell($file)-4)); } if ($endofsection) break; $asn = seekto($file, '</asn>'); $path .= ' '.$asn; } if (in_array($path, $paths)) continue; $paths[] = $path; print($path."\n"); } function seekto($f, $str) { $part = ''; $i = 0; $len = strlen($str); while ($i < $len && !feof($f)) { $c = fgetc($f); if ($c === FALSE) return FALSE; if ($c == $str[$i]) { $i++; } else { if ($i) { $i = 0; $part = ''; } $part .= $c; } } return $part; }