試しに逆引きしてみたけど遅すぎて使い物にならない
瞬時に最大1000個の逆引きをするのは無理がある
2回目以降はキャッシュすればいいが

if (preg_match("/\[(\d+\.\d+\.\d+\.\d+)( |\])/", $word, $temp)) {
static $ip_host = array();
$ip = $temp[1];
if (!in_array($ip, $ip_host)) $ip_host[$ip] = gethostbyaddr($ip);
$word = str_replace($ip, $ip_host[$ip], $word);
}