PHP - Problem: Multiaccounts mittels IP ermitteln

08/08/2014 14:51 ooCheateroo#1
Guten Tag allesammt, ich sitze jetzt schon seit längerem an einem Problem fest und habe mich nun dazu entschlossen euch um Hilfe zu fragen. Ich programmiere an einer Multiaccount Klasse für mein Browsergame, die anhand einer log Tabelle Spieler mit der selben IP in eine Tabelle (multiaccount) einträgt. Sollten binnend 30 Tagen zu viele Einträge des Users in der Tabelle sein (Besser gesagt, zu viele Tage mit geteilter IP zwischen mehreren Spielern) wird der Administrator benachrichtigt.

Hier erstmal meine Tabellen:

An sich sucht die Klasse alle Einträge raus, die die gleiche IP besitzen wie der User (User A), dann werden die betroffenen log_ids in der Tabelle multiaccount eingetragen (um mehrfache Einträge zu verhindern), des Weiteren kann so ein 3 Spieler (User C) mit der gleichen IP erfasst werden, ohne dass die anderen 2 Spieler (User A & B) (die bereits einen Eintrag besitzen) einen Eintrag bekommen.
Das Problem liegt dabei, dass wenn der User A sich ein zweites mal einloggt, ein neuer Eintrag in der log Tabelle hinzugefügt wird und so ein neuer Eintrag in der "multiaccount" Tabelle getätigt wird, obwohl besagter User A bereits mit User B einen Eintrag in der multiaccount Tabelle besitzen. Da dies relativ schwierig zu erklären ist, hier einfach ein gekürzter/vereinfachter Ausschnitt meiner Klasse:


mfg
08/08/2014 16:23 KoKsPfLaNzE#2
paar kleine sachen:
1. mysql gibts ab 5.5 net mehr, wieso nutzt du noch den scheiß
2. der aufbau is total scheiße, mach fuer jede tabelle eine klasse um den code von sql zutrennen, dem service sollte es vollkommen egal sein von wo die daten kommen.
3. dir is bewusst das paar leute dynamische ips haben, die sich jeden tag aendern oder? brauchst wenn eine like suche und viellleicht einen cookie fuer multi accounts
4. schon ma an proxys gedacht? da bringt dir die aktuelle ip abfrage 0.

mal paar kleine sachen die du ueber denken solltest
08/09/2014 16:23 ooCheateroo#3
Erstmal danke für deine Anregungen hinsichtlich dem code. Das mit dynamischen IPs & Proxys ist mir wohl bewusst, ich habe ja auch nichts davon gesagt, dass die IP abzugleichen die einzige Maßname sei. Auch wenn das mit der IP leicht zu umgehen ist halte ich es dennoch für ein wichtiges Teil einer solchen Klasse. Denn Multiaccounts wird es immer in solchen Spielen geben, man kann lediglich versuchen Multiaccounts das Leben schwieriger zu machen. (Ja ich bin mir bewusst, dass dann nicht nur Multiaccounts davon betroffen sind sondern auch normale Spieler, ich denke jedoch auch dass man hier Kompromisse eingehen muss um im großen Ganzen ein faires Spiel zu ermöglichen)

Ich wäre natürlich weiterhin dankbar einen Lösungsansatz, denn auch wenn ich mich nun vom mysql_* trenne, bleibt mein Problem jedoch weiterhin bestehen.

mfg