使用php来掩盖部分ipv4或ipv6地址

时间:2014-07-14 18:09:45

标签: php

我正在使用下面的代码,但它没有显示ip的前缀(例如。* * *。* * *。* * *正在显示而不是192. * * *。* * *。* * *和IPV6相同。

$offset = 2;

if (strpos($row["log_ip"], ":") !== false) {
  $needle      = ".";
  $replacement = ".***.***.***";
}
else {
  $needle      = ":";
  $replacement = ":****:****:****:****:****:****:****";
}

$row["log_ip"] = substr_replace($row["log_ip"], $replacement, stripos($row["log_ip"],     $needle, $offset));

echo $row["log_ip"];

1 个答案:

答案 0 :(得分:1)

您只需从条件中删除感叹号。它应该是== false



        $offset = 2;
        if (strpos($row["log_ip"], ":") == false) {
        $needle      = ".";
          $replacement = ".***.***.***";
        }
        else {
          $needle      = ":";
          $replacement = ":****:****:****:****:****:****:****";
        }

        $row["log_ip"] = substr_replace($row["log_ip"], $replacement, stripos($row["log_ip"],     $needle, $offset));

    echo $row["log_ip"];