IP'; } ?> $val) { if ($val[$field] === $needle) { return $key; } } return null; } function getLinkedGateways($logLines) { $gateways = Array(); for ($i = count($logLines); $i>0; $i--) { if(isset($logLines[$i])){ $logLine = $logLines[$i]; if (strpos($logLine, "Starting P25Reflector")) { return $gateways; } if (strpos($logLine, "No repeaters/gateways linked")) { return $gateways; } if (strpos($logLine, "Currently linked repeaters")) { for ($j = $i+1; $j <= count($logLines); $j++) { if(isset($logLines[$j])){ $logLine = $logLines[$j]; if (!startsWith(substr($logLine,27), " ")) { return $gateways; } else { //$Reflector->SetTotalNodes($Reflector->GetTotalNodes() + 1); $timestamp = substr($logLine, 3, 19); $callsign = substr($logLine, 31, 11); //$callsign = explode(" ", $callsign); $ipport = substr($logLine, 43); //$ipport = explode(":", $ipport); $key1 = searchForKey("ipport",$ipport, $gateways); $key2 = searchForKey("callsign",$callsign, $gateways); if (($key1 === NULL) && ($key2 == NULL)) { array_push($gateways, Array('callsign'=>$callsign,'timestamp'=>$timestamp,'ipport'=>$ipport)); } } } } } } } return $gateways; } $Reflector->LoadFlags(); $i = 0; for ($i=0;$i<$Reflector->NodeCount();$i++) { echo ''; if ($PageOptions['RepeatersPage']['IPModus'] != 'HideIP') { echo ''; } echo ''; if ($i == $PageOptions['RepeatersPage']['LimitTo']) { $i = $Reflector->NodeCount()+1; } } //$Reflector->SetTotalNodes($Reflector->NodeCount()); $logLines = array(); //error_log(print_r("logLines ".count($logLines)."\n", TRUE)); if ($log = fopen("/var/log/reflectors/P25-9846-".date("Y-m-d").".log", 'r')) { while ($logLine = fgets($log)) { array_push($logLines, $logLine); } fclose($log); } //error_log(print_r("logLines ".count($logLines)."\n", TRUE)); $gateways = getLinkedGateways($logLines) ; //error_log(print_r("gateways ".count($gateways)."\n", TRUE)); //$Reflector->SetTotalNodes($Reflector->NodeCount() + count($p25gateways)); foreach ($gateways as $gateway) { $i += 1; echo ''; echo "'; } $cs = explode(" ", $gateway['callsign']); $ip = explode(":", $gateway['ipport']); echo ""; } if ($log = fopen("/var/log/reflectors/NXDNReflector-".date("Y-m-d").".log", 'r')) { while ($logLine = fgets($log)) { array_push($logLines, $logLine); } fclose($log); } $gateways = getLinkedGateways($logLines); foreach ($gateways as $gateway) { $i += 1; echo ''; echo "'; } $cs = explode(" ", $gateway['callsign']); $ip = explode(":", $gateway['ipport']); echo ""; } ?>
# Flag DV Station Last Heard Linked for Protocol
'.($i+1).' '; list ($Flag, $Name) = $Reflector->GetFlag($Reflector->Nodes[$i]->GetCallSign()); if (file_exists("./img/flags/".$Flag.".png")) { echo ''.$Name.''.$Name.''; } echo ' '.$Reflector->Nodes[$i]->GetCallSign(); echo ' '.date("d.m.Y H:i", $Reflector->Nodes[$i]->GetLastHeardTime()).' '.FormatSeconds(time()-$Reflector->Nodes[$i]->GetConnectTime()).' s '.$Reflector->Nodes[$i]->GetProtocol().''; $Bytes = explode(".", $Reflector->Nodes[$i]->GetIP()); $MC = $PageOptions['RepeatersPage']['MasqueradeCharacter']; if ($Bytes !== false && count($Bytes) == 4) { switch ($PageOptions['RepeatersPage']['IPModus']) { case 'ShowLast1ByteOfIP': echo $MC.'.'.$MC.'.'.$MC.'.'.$Bytes[3]; break; case 'ShowLast2ByteOfIP': echo $MC.'.'.$MC.'.'.$Bytes[2].'.'.$Bytes[3]; break; case 'ShowLast3ByteOfIP': echo $MC.'.'.$Bytes[1].'.'.$Bytes[2].'.'.$Bytes[3]; break; default: echo $Reflector->Nodes[$i]->GetIP(); } } else { $ipstr = $Reflector->Nodes[$i]->GetIP(); $count = substr_count($ipstr, ":"); if ($count > 1) { if (1 == substr_count($ipstr, "::")) { $ipstr = str_replace("::", str_repeat(":", 9 - $count), $ipstr); } if (7 == substr_count($ipstr, ":")) { echo $MC.':'.$MC.':'.$MC.':'.$MC.':'.$MC.':'.$MC; $Bytes = explode(":", $ipstr); for( $k=6; $k<8; $k++) { echo (0==strlen($Bytes[$k])) ? ':0' : ':'.$Bytes[$k]; } } } } echo '
$i"; list ($Flag, $Name) = $Reflector->GetFlag($gateway['callsign']); if (file_exists("./img/flags/".$Flag.".png")) { echo ''.$Name.''.$Name.'$cs[0]P25$ip[0]
$i"; list ($Flag, $Name) = $Reflector->GetFlag($gateway['callsign']); if (file_exists("./img/flags/".$Flag.".png")) { echo ''.$Name.''.$Name.'$cs[0]NXDN$ip[0]