it-swarm-eu.dev

Zjistit IP adresu uživatele vzhledem k jeho UID?

Provozuji web Drupal 7 web s ruskou multiplayerovou karetní hrou) a každých 4-5 dní musím blokovat některé velmi nepříjemné hráče.

Před Drupal jsem používal phpBB 3. Když by tyto osoby pocházely z malého města/vesnice, přidal bych pouze jejich IP-síť k pravidlům firewallu, aby nemohli znovu zaregistrujte se s novou e-mailovou adresou. V mém případě to fungovalo dobře a moje otázka se netýká těchto zásad.

Můj problém je, že u Drupalu nemůžu najít poslední IP adresu, kterou použilo uživatelské jméno. Tj. zneuživatele jsou mi hlášeny jinými uživateli a znám jeho uid, ale jeho IP adresu v protokolech nemůžu najít, protože:

  1. Povolil jsem protokolování syslogu a viděl jsem zprávy Drupal zprávy v/var/log/messagess, ale zřídka existuje zpráva o přihlášení uživatele, pravděpodobně proto, že relace jsou ve výchozím nastavení dlouhé a Chtěl bych si to ponechat tímto způsobem pro pohodlí uživatele.

  2. Povolil jsem také „protokolování databáze“, ale nevím, kde je vidět (která databázová tabulka).

9
Alexander Farber

Pokud máte povolený statistický modul, tabulka „accesslog“ obsahuje IP adresy všech vašich návštěvníků.

SELECT hostname FROM accesslog WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

Pokud nemáte povolenou statistiku, doporučujeme vám ji nechat vypnutou, a to i kvůli tomuto výsledku, protože její povolení způsobí závažnou pokutu za výkon.

V takovém případě můžete použít tabulku sessions:

SELECT hostname FROM sessions WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

Výhodou prvního oproti poslednímu je, že první vám vždy zobrazí nejnovější jméno hostitele, zatímco druhý nemusí být vždy aktuální.

9
berkes

Pokud vím, Drupal nehlásí IP používanou uživateli ve svém uživatelském profilu. Mohli byste vytvořit vlastní modul, ověřit IP použitou uživatelem a zaznamenat ji do svého uživatelského profilu vlastní databázovou tabulku, pak ji můžete zobrazit v uživatelském profilu uživatelům, kteří mají správné oprávnění (například uživatelům s oprávněním spravovat uživatele).

Funkce, kterou potřebujete, je ip_address () , kterou můžete použít při implementaci hook_user_login () . Pokud implementujete hook_user_view () , můžete tyto informace uživatelům zobrazit se správným povolením.

5
kiamlaluno

Pokud používáte modul protokolování databáze, Drupal ukládá tyto informace do tabulky hlídacího psa, ve sloupci hostname. Můžete buď napsat vlastní dotazy, abyste získali tyto informace, nebo použijte modul Watch Watch Dog (v současné době pouze verze dev pro 7.x, takže si nejsem jistý, jak dobře to funguje v Drupal 7) k odhalení této tabulky na zobrazení.

3
jhedstrom

K tomu mohou pomoci dva nejnovější moduly:

živatel IP Log , který má integraci pohledů a IP Address Manager , který nemá integraci pohledů, ale je určen k integraci s Manifest, Cave Your Trolls a Misery-- všechny zakázané související moduly.

1
Patrick Kenny