diff --git a/usr/local/www/diag_dump_states.php b/usr/local/www/diag_dump_states.php index 6cb35134dc..ebb3b062f8 100755 --- a/usr/local/www/diag_dump_states.php +++ b/usr/local/www/diag_dump_states.php @@ -197,19 +197,35 @@ while ($line = chop(fgets($fd))) { /* break up info and extract $srcip and $dstip */ $ends = preg_split("/\?/", $info); - $parts = explode(":", $ends[0]); - if (strstr($info, "->")) { - $srcip = trim($parts[0]); + if (strstr($info, "[")) { + // IPv6 + $parts = explode("[", $ends[0]); + if (strstr($info, "->")) { + $srcip = trim($parts[0]); + } else { + $dstip = trim($parts[0]); + } + $parts = explode("[", $ends[count($ends) - 1]); + if (strstr($info, "->")) { + $dstip = trim($parts[0]); + } else { + $srcip = trim($parts[0]); + } } else { - $dstip = trim($parts[0]); + // IPv4 + $parts = explode(":", $ends[0]); + if (strstr($info, "->")) { + $srcip = trim($parts[0]); + } else { + $dstip = trim($parts[0]); + } + $parts = explode(":", $ends[count($ends) - 1]); + if (strstr($info, "->")) { + $dstip = trim($parts[0]); + } else { + $srcip = trim($parts[0]); + } } - $parts = explode(":", $ends[count($ends) - 1]); - if (strstr($info, "->")) { - $dstip = trim($parts[0]); - } else { - $srcip = trim($parts[0]); - } - ?>