diff --git a/dashboard2/pgs/peers.php b/dashboard2/pgs/peers.php
index 1f45c13..3fbeb48 100644
--- a/dashboard2/pgs/peers.php
+++ b/dashboard2/pgs/peers.php
@@ -64,13 +64,42 @@ for ($i=0;$i<$Reflector->PeerCount();$i++) {
'.$Reflector->Peers[$i]->GetLinkedModule().' | ';
if ($PageOptions['PeerPage']['IPModus'] != 'HideIP') {
echo '';
- $Bytes = explode(".", $Reflector->Peers[$i]->GetIP());
- if ($Bytes !== false && count($Bytes) == 4) {
- switch ($PageOptions['PeerPage']['IPModus']) {
- case 'ShowLast1ByteOfIP' : echo $PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$Bytes[3]; break;
- case 'ShowLast2ByteOfIP' : echo $PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$Bytes[2].'.'.$Bytes[3]; break;
- case 'ShowLast3ByteOfIP' : echo $PageOptions['PeerPage']['MasqueradeCharacter'].'.'.$Bytes[1].'.'.$Bytes[2].'.'.$Bytes[3]; break;
- default : echo ''.$Reflector->Peers[$i]->GetIP().'';
+ $IPBinary = inet_pton($Reflector->Peers[$i]->GetIP());
+ $IPLength = strlen($IPBinary);
+ $Bytes = str_split($IPBinary, 1);
+ switch ($PageOptions['PeerPage']['IPModus']) {
+ case 'ShowLast1ByteOfIP' : $MasqByte = 3; break;
+ case 'ShowLast2ByteOfIP' : $MasqByte = 2; break;
+ case 'ShowLast3ByteOfIP' : $MasqByte = 1; break;
+ default : $MasqByte = 0; break;
+ }
+ if ($MasqByte == 0) {
+ switch ($IPLength) {
+ case 16: $IPAddrBracketL = '['; $IPAddrBracketR = ']'; break;
+ default: $IPAddrBracketL = ''; $IPAddrBracketR = ''; break;
+ }
+ echo ''.$Reflector->Peers[$i]->GetIP().'';
+ } else {
+ switch ($IPLength) {
+ case 4:
+ for ($pos = 0; $pos < $IPLength; $pos++) {
+ if ($pos) echo '.';
+ if ($pos < $MasqByte) echo $PageOptions['PeerPage']['MasqueradeCharacter'];
+ else echo ord($Bytes[$pos]);
+ }
+ break;
+ case 16:
+ for ($pos = 0; $pos < $IPLength; $pos += 2) {
+ if ($pos) echo ':';
+ if ($pos < ($MasqByte * 4)) echo $PageOptions['PeerPage']['MasqueradeCharacter'];
+ else {
+ echo bin2hex($Bytes[$pos]);
+ echo bin2hex($Bytes[$pos + 1]);
+ }
+ }
+ break;
+ default:
+ break;
}
}
echo ' | ';
diff --git a/dashboard2/pgs/repeaters.php b/dashboard2/pgs/repeaters.php
index a7562b9..0e10a59 100644
--- a/dashboard2/pgs/repeaters.php
+++ b/dashboard2/pgs/repeaters.php
@@ -60,14 +60,35 @@ for ($i=0;$i<$Reflector->NodeCount();$i++) {
if ($PageOptions['RepeatersPage']['IPModus'] != 'HideIP') {
echo '
';
- $Bytes = explode(".", $Reflector->Nodes[$i]->GetIP());
- if ($Bytes !== false && count($Bytes) == 4) {
- switch ($PageOptions['RepeatersPage']['IPModus']) {
- case 'ShowLast1ByteOfIP' : echo $PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$Bytes[3]; break;
- case 'ShowLast2ByteOfIP' : echo $PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$Bytes[2].'.'.$Bytes[3]; break;
- case 'ShowLast3ByteOfIP' : echo $PageOptions['RepeatersPage']['MasqueradeCharacter'].'.'.$Bytes[1].'.'.$Bytes[2].'.'.$Bytes[3]; break;
- default : echo $Reflector->Nodes[$i]->GetIP();
- }
+ $IPBinary = inet_pton($Reflector->Nodes[$i]->GetIP());
+ $IPLength = strlen($IPBinary);
+ $Bytes = str_split($IPBinary, 1);
+ switch ($PageOptions['RepeatersPage']['IPModus']) {
+ case 'ShowLast1ByteOfIP' : $MasqByte = 3; break;
+ case 'ShowLast2ByteOfIP' : $MasqByte = 2; break;
+ case 'ShowLast3ByteOfIP' : $MasqByte = 1; break;
+ default : $MasqByte = 0; break;
+ }
+ switch ($IPLength) {
+ case 4:
+ for ($pos = 0; $pos < $IPLength; $pos++) {
+ if ($pos) echo '.';
+ if ($pos < $MasqByte) echo $PageOptions['RepeatersPage']['MasqueradeCharacter'];
+ else echo ord($Bytes[$pos]);
+ }
+ break;
+ case 16:
+ for ($pos = 0; $pos < $IPLength; $pos += 2) {
+ if ($pos) echo ':';
+ if ($pos < ($MasqByte * 4)) echo $PageOptions['RepeatersPage']['MasqueradeCharacter'];
+ else {
+ echo bin2hex($Bytes[$pos]);
+ echo bin2hex($Bytes[$pos + 1]);
+ }
+ }
+ break;
+ default:
+ break;
}
echo ' | ';
}