IP dels comentaris a un WordPress

Pràctic, Programari

WordPress per defecte enregistra l’adreça IP del proxy de qui envia comentaris, no la real. Les connexions d’alguns proveïdors d’ADSL passen per proxy-cau, cosa que fa que molts comentaris tenguin la mateixa adreça IP. Per canviar aquest detall, basta fer una petita modificació a wp-comments-post.php.

Cal localitzar la línia $user_ip = $_SERVER['REMOTE_ADDR']; i comentar-la o esborrar-la. A continuació, heu d’entrar el codi que recollirà l’adreça IP de qui fa el comentari:

if (preg_match('/^(d{1,3}.){3}d{1,3}$/s', $_SERVER["HTTP_CLIENT_IP"])) {
  $user_ip = $_SERVER["HTTP_CLIENT_IP"];
  } else {
    if (preg_match('/^(d{1,3}.){3}d{1,3}$/s', $_SERVER["HTTP_X_FORWARDED_FOR"])) {
      $user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
      } else {
        if (preg_match('/^(d{1,3}.){3}d{1,3}$/s', $_SERVER["REMOTE_HOST"])) {
          $user_ip = $_SERVER["REMOTE_HOST"];
          } else {
            $user_ip = $_SERVER["REMOTE_ADDR"];
          }
      }
  }

En comptes d’usar sempre la variable REMOTE_ADDR, en primer lloc cerca la IP a HTTP_CLIENT_IP, després a HTTP_X_FORWARDED_FOR i finalment a REMOTE_HOST. Es quedarà amb la primera que trobi. HTTP_CLIENT_IP i HTTP_X_FORWARDED_FOR solen desar la del visitant, però el detall pot canviar en algunes connexions. Ho podeu veure amb la funcio phpinfo().

L’expressió regular comprova que es tracta d’una adreça IPv4: una cadena que comença (^) amb 3 seqüències de entre 1 i 3 dígits separades per un punt i que finalitza ($) amb entre 1 i 3 dígits més.

El codi no és cosa meva. L’he trobat a varis webs cercant experiències amb els proxy-cau i les IP —aquí un. Al web de PHP hi ha una discussió sobre com recollir l’adreça IP i més codi vàlid. Tot plegat és fàcil d’entendre i correcte, així que endavant amb els copipastes 🙂

Compartir

Entrada prèvia
Res millor que el codi obert ben analitzat
Entrada següent
La plataforma Firefox

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Fill out this field
Fill out this field
Introduïu una adreça electrònica vàlida.

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.

Menú