anpera.net https://anpera.homeip.net/phpbb3/ |
|
loganalyse . Multiaccounst und Rlpaare https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=2684 |
Seite 1 von 1 |
Autor: | azraeldemon [ Fr 14 Jul, 2006 23:10 ] |
Betreff des Beitrags: | loganalyse . Multiaccounst und Rlpaare |
Salve, habe folgendes problem ! mit hilfe von loganalyse erfasse ich die uniqueid acctid laston name lastip dragonkills und level! mit einem zusatz tool kann ich RLpaare eintragen damit ich bestätigt habe das es sich bei einer IP/ID/cookie um 2 personen und nicht um einen MULIACCOUNT handelt! meine frage ist nun wie bekomme ich es hin das die bestätigten nicht mehr in der multi analyse auftauchen? [php]}else if ($HTTP_GET_VARS[op]=="multi"){ $ip = $idlist = $users = array(); $sql = 'SELECT uniqueid FROM accounts WHERE uniqueid!="" GROUP BY uniqueid HAVING COUNT(*) > 1'; $result = db_query($sql) or die(db_error(LINK)); while ($row = db_fetch_assoc($result)) { $idlist[] = $row['uniqueid']; } output("`n`bCheat-Schlümpfe ab dem $abdatum (MoTD)`b`n`n`0"); foreach ($idlist AS $id) { $sql = "SELECT acctid,name,lastip,uniqueid,dragonkills,level,laston FROM accounts WHERE uniqueid = '$id' AND locked='0' ORDER BY dragonkills ASC, level ASC"; $result = db_query($sql) or die(db_error(LINK)); while ($row = db_fetch_assoc($result)) { $userlist[] = $row; } $usergroup[] = $userlist; unset($userlist); } foreach ($usergroup AS $group) { $in_acctid = ''; $i = count($group); $cookie = $group[0]['uniqueid']; output("`n`n`Q$i Characters mit Cookie: $cookie`0`n"); output("<table border=0 cellpadding=2 cellspacing=1 >",true); output("<tr class='input'><td>Spieler/in</td><td>letzte IP</td><td>Drachen</td><td>Level</td><td>Last On</td><td>RL-Partner</td>",true); foreach ($group AS $member) { output("<tr class='trmain'>",true); output("<td>".$member['name']."</td><td>".$member['lastip']."</td><td align='center'>" .$member['dragonkills']."</td><td align='center'>".$member['level']."</td>",true); $in_acctid .= ','.$member['acctid']; $laston=round((strtotime("0 days")-strtotime($member[laston])) / 86400,0)." Tage"; if (substr($laston,0,2)=="1 ") $laston="1 Tag"; if (date("Y-m-d",strtotime($member[laston])) == date("Y-m-d")) $laston="Heute"; if (date("Y-m-d",strtotime($member[laston])) == date("Y-m-d",strtotime("-1 day"))) $laston="Gestern"; if ($loggedin) $laston="Jetzt"; output("<td>".$laston."</td>",true); $sqlrl1 = "SELECT * FROM rlpaare WHERE acctid1='".$member['acctid']."'"; $resultrl1 = db_query($sqlrl1) or die(db_error(LINK)); $rowrl1 = db_fetch_assoc($resultrl1); $sqlname1 = "SELECT name FROM accounts WHERE acctid='".$rowrl1['acctid2']."'"; $resultname1 = db_query($sqlname1) or die(db_error(LINK)); $rowname1 = db_fetch_assoc($resultname1); if (db_num_rows($resultrl1) > 0) { output("<td>".$rowname1[name]."</td>",true); }else{ $sqlrl2 = "SELECT * FROM rlpaare WHERE acctid2='".$member['acctid']."'"; $resultrl2 = db_query($sqlrl2) or die(db_error(LINK)); $rowrl2 = db_fetch_assoc($resultrl2); $sqlname2 = "SELECT name FROM accounts WHERE acctid='".$rowrl2['acctid1']."'"; $resultname2 = db_query($sqlname2) or die(db_error(LINK)); $rowname2 = db_fetch_assoc($resultname2); output("<td>".$rowname2[name]."</td>",true); } output("</tr>",true); } output("</table>",true); // -> debuglog $sql = 'SELECT debuglog.*,date,actor,target,a1.name as actorname,a2.name as targetname FROM debuglog LEFT JOIN accounts as a1 ON a1.acctid=debuglog.actor LEFT JOIN accounts as a2 ON a2.acctid=debuglog.target WHERE actor IN (-1'.$in_acctid.') AND target IN (-1'.$in_acctid.') AND date > "'.date("Y-m-d H:i:s",strtotime($abdatum)).'" ORDER BY date DESC, actor ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("`^Debuglog:`0`n Keine Interaktion. `@Guuuuuut.`0`n"); } else { output("`^Debuglog:`0`n Die folgenden Interaktionen wurden gefunden:`n"); while ($row = db_fetch_assoc($result)) { output("`$ Log:`0 ".$row['date']." - ".$row['actorname']." ".$row['message']. " ".$row['targetname']."`n" ); } } // -> houses Eigentümer $comarray = array(); $vergehen=0; $owner=0; $sql = 'SELECT houseid,owner,status,housename,a1.name as hausholder FROM houses LEFT JOIN accounts as a1 ON a1.acctid=houses.owner WHERE owner IN (-1'.$in_acctid.') ORDER BY owner ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("`^Häuser:`0 Keine Hauseingentümer!`0`n"); } else { $i = 1; output("`^Häuser:`0`n"); while ($row = db_fetch_assoc($result)) { $sql2 = 'SELECT houses.houseid, houses.status, a1.name as hausholder, a2.name as keyholder, items.owner as keyowner FROM houses, items LEFT JOIN accounts as a1 ON a1.acctid=houses.owner LEFT JOIN accounts as a2 ON a2.acctid=items.owner WHERE houses.owner = '.$row[owner].' AND items.value1 = houses.houseid AND items.owner IN (-1'.$in_acctid.') AND items.owner != '.$row[owner].' ORDER BY keyholder ASC'; $result2 = db_query($sql2) or die(db_error(LINK)); if (db_num_rows($result2) == 0) { output("Hauseingentümer ".$row['hausholder']." `@ohne Schlüssel-Vergehen!`0`n"); } else { while ($row2 = db_fetch_assoc($result2)) { output("`$ Vergehen $i:`0 Hausbesitzer ist ".$row2['hausholder'].", Schüssel hat ".$row2['keyholder']." `n"); //status als zaehler brauchen $row2['status']= $i; $comarray[] = $row2; $vergehen++; //commentary hauseigentümer über folgenden trickauslesen //if ( $owner == 0 || $owner == $row['owner'] ) { if ( $owner != $row['owner'] ) { $row2['keyowner']=$row['owner']; $comarray[] = $row2; $owner=$row['owner']; } // $i++; } } } } // -> Houses Eigentümer commentary $flag = 0; if ( $vergehen > 0 ) { $i=1; $hoch = 0; foreach ($comarray AS $com) { if ( $flag == 0 ) { output("`6Comment Summary:`0`n"); $flag++; } $i = $com['status']; $section = "house-".$com['houseid']; $author = $com['keyowner']; $hausnr = $com['houseid']; $sql = 'SELECT *, a1.name as actorname FROM commentary LEFT JOIN accounts as a1 ON a1.acctid=commentary.author WHERE author ='.$author.' AND section ="'.$section.'" ORDER BY commentid ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("`6($i)`0 Keine Einträge`n"); } else { $dg = $ng = $de = $ne = 0; while ($row = db_fetch_assoc($result)) { $text = $row['comment']; $wer = $row['actorname']; $text2 = str_replace("/me ", " ", $row['comment']); //output($row['actorname']."`0 ".$text2."`0`n" ); if ( !strpos( $text, "Edelsteine") ) { if ( !strpos( $text, "nimmt") ) { $tmp = str_replace("/me `@deponiert `^", "", $text); $tmp = str_replace("`@ Gold.", "", $tmp); $dg += $tmp; } else { $tmp = str_replace("/me `\$nimmt `^", "", $text); $tmp = str_replace("`$ Gold.", "", $tmp); $ng += $tmp; } } else { if ( !strpos( $text, "nimmt") ) { $tmp = str_replace("/me `@deponiert `#", "", $text); $tmp = str_replace("`@ Edelsteine.", "", $tmp); $de += $tmp; } else { $tmp = str_replace("/me `\$nimmt `#", "", $text); $tmp = str_replace("`$ Edelsteine.", "", $tmp); $ne += $tmp; } } } output("`0`6($i) Haus $hausnr:`0 $wer `$ deponiert $dg Gold und $de Gems, nimmt $ng Gold und $ne Gems.`0`n" ); } if ( $hoch == 0 ) { $hoch = 1; } else { $i++; $hoch = 0; } } } unset($comarray); // -> houses Bewohner $comarray = array(); $id_alt=0; $sql = 'SELECT items.value1, items.owner AS keyowner, houses.owner AS houseowner FROM items LEFT JOIN houses ON houses.houseid=items.value1 WHERE items.owner!=houses.owner AND items.class="Schlüssel" AND items.owner IN (-1'.$in_acctid.') ORDER BY houses.owner ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("`^Schlüssel:`0 Kein Schlüsselbesitz!`0`n"); } else { $i = 1; output("`^Schlüssel:`0`n"); while ($row = db_fetch_assoc($result)) { if ( $id_alt != $row['houseowner'] ) { $id_alt = $row['houseowner']; $sql2 = 'SELECT items.value1, items.owner AS keyowner, houses.owner AS houseowner, a1.name as hausholder, a2.name as keyholder FROM items LEFT JOIN houses ON houses.houseid=items.value1 LEFT JOIN accounts as a1 ON a1.acctid=houses.owner LEFT JOIN accounts as a2 ON a2.acctid=items.owner WHERE items.owner!=houses.owner AND items.class="Schlüssel" AND items.owner IN (-1'.$in_acctid.') and houses.owner = '.$id_alt.' ORDER BY houses.owner ASC'; $result2 = db_query($sql2) or die(db_error(LINK)); if (db_num_rows($result2) == 0) { output("Hauseingentümer ".$row['hausholder']." `@ohne Schlüssel-Vergehen!`0`n"); } else if (db_num_rows($result2) == 1) { $row2 = db_fetch_assoc($result2); output("Hausbesitzer Nr. ".$row2['value1']." ist ".$row2['hausholder'].", Schüssel hat ".$row2['keyholder']." `@Ok.`0`n"); } else { while ($row2 = db_fetch_assoc($result2)) { output("`$ Vergehen $i:`0 Hausbesitzer Nr. ".$row2['value1']." ist ".$row2['hausholder'].", Schüssel hat ".$row2['keyholder']." `n"); $comarray[] = $row2; $i++; } } } } } // -> Houses Bewohner commentary $flag = 0; $i = 1; foreach ($comarray AS $com) { if ( $flag == 0 ) { output("`6Comment Summary:`0`n"); $flag++; } $section = "house-".$com['value1']; $author = $com['keyowner']; $hausnr = $com['value1']; $sql = 'SELECT *, a1.name as actorname FROM commentary LEFT JOIN accounts as a1 ON a1.acctid=commentary.author WHERE author ='.$author.' AND section ="'.$section.'" ORDER BY commentid ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("`6($i)`0 Keine Einträge`n"); } else { $dg = $ng = $de = $ne = 0; while ($row = db_fetch_assoc($result)) { $text = $row['comment']; $wer = $row['actorname']; $text2 = str_replace("/me ", " ", $row['comment']); //output($row['actorname']."`0 ".$text2."`0`n" ); if ( !strpos( $text, "Edelsteine") ) { if ( !strpos( $text, "nimmt") ) { $tmp = str_replace("/me `@deponiert `^", "", $text); $tmp = str_replace("`@ Gold.", "", $tmp); $dg += $tmp; } else { $tmp = str_replace("/me `\$nimmt `^", "", $text); $tmp = str_replace("`$ Gold.", "", $tmp); $ng += $tmp; } } else { if ( !strpos( $text, "nimmt") ) { $tmp = str_replace("/me `@deponiert `#", "", $text); $tmp = str_replace("`@ Edelsteine.", "", $tmp); $de += $tmp; } else { $tmp = str_replace("/me `\$nimmt `#", "", $text); $tmp = str_replace("`$ Edelsteine.", "", $tmp); $ne += $tmp; } } } output("`0`6($i) Haus $hausnr:`0 $wer `$ deponiert $dg Gold und $de Gems, nimmt $ng Gold und $ne Gems.`0`n" ); } $i++; } unset($comarray); output("`n`n"); } addnav("Zurück zur Grotte","superuser.php"); addnav("Zurück zur Stadt","village.php"); addnav("Analyse"); addnav("Faillogs & Mails","logs.php"); addnav("MultiAccs und Vergehen","loganalysis1.php?op=multi"); addnav("Zugriffe per Usereditor","loganalysis1.php?op=userz"); addnav("Hausverkäufe","loganalysis1.php?op=haus"); addnav("Aktualisieren","loganalysis1.php?op=multi"); }[/php] |
Autor: | Auric [ Sa 15 Jul, 2006 14:37 ] |
Betreff des Beitrags: | |
1. Neues Feld in die accounts-Tabell "Paare" oder so 2. In allen Querys, bei denen der Multiaccount-Sucher Userdaten liest anhand des "Paare" Feldes ausschließen. 3. Script schreiben, mit dem man solche Paare in die DB eintragen kann... |
Autor: | Eliwood [ Sa 15 Jul, 2006 15:17 ] |
Betreff des Beitrags: | |
Auric hat geschrieben: 1. Neues Feld in die accounts-Tabell "Paare" oder sokann...
Wobei "Paare" die Accountid des RL-Partners/Partnerin beinhalten müsste... |
Autor: | azraeldemon [ Sa 15 Jul, 2006 20:52 ] |
Betreff des Beitrags: | |
also so in der art wie das marriedto column feld ? habe nun eine rlpartner in der account tabelle mit drin! und im usereditor kann ich auch manuelle die id des partners eingeben! und wie komme ich weiter? sorry bin was db abfragen angeht noch nicht so bewandert! das ist der code wo die paare in der DB in der tabelle rlpaare eingetragen werden! $sql1 = "SELECT acctid,name FROM accounts WHERE name='".addslashes(rawurldecode(stripslashes($_POST['ziel1'])))."' AND locked=0"; $result1 = db_query($sql1); $row1 = db_fetch_assoc($result1); $sql2 = "SELECT acctid,name FROM accounts WHERE name='".addslashes(rawurldecode(stripslashes($_POST['ziel2'])))."' AND locked=0"; $result2 = db_query($sql2); $row2 = db_fetch_assoc($result2); $sql = "INSERT INTO rlpaare (name1,acctid1,name2,acctid2,bestaetigt,vonwem,anmerkung) VALUES ('".$row1[name]."','".$row1[acctid]."','".$row2[name]."','".$row2[acctid]."','".$_POST[best]."','".$session[user][name]."','".$_POST[anmerkung]."')"; db_query($sql); |
Autor: | azraeldemon [ Sa 15 Jul, 2006 23:55 ] |
Betreff des Beitrags: | |
$sql = "INSERT INTO accounts (rlpartner) ('".$row1[acctid]."','".$row2[acctid]."')"; das würde ich jetzt versuchen da einzubaun ob es klappt weiss ich aber nicht! |
Autor: | Montekar [ Mo 17 Jul, 2006 16:09 ] |
Betreff des Beitrags: | |
azraeldemon hat geschrieben: $sql = "INSERT INTO accounts (rlpartner) ('".$row1[acctid]."','".$row2[acctid]."')";
das würde ich jetzt versuchen da einzubaun ob es klappt weiss ich aber nicht! Also so klappt es eher nicht. Dann würdest du einen (fast) 'leeren Account' erstellen (ach ne, das würd warscheinlich auch nicht klappen, weil du es wenn dann immer so machen musst: $this->bbcode_second_pass_code('', 'INSERT INTO `accounts` (1.Wert,2.Wert) VALUES (1.Value,2.value)') ) So musst du es machen (dafür brauchst du das Feld Partner) $this->bbcode_second_pass_code('', 'UPDATE `accounts` SET `partner` =' '.$row['acctid'].' ' WHERE `acctid` = ' '.$row2['acctid'].' '') Und dann eben nochmal für den (bzw. die ![]() $this->bbcode_second_pass_code('', 'UPDATE `accounts` SET `partner` =' '.$row2['acctid'].' ' WHERE `acctid` = ' '.$row['acctid'].' '') |
Autor: | Kevz [ Mo 17 Jul, 2006 16:23 ] |
Betreff des Beitrags: | |
Erstelle doch einen weiteren Wert in einer neuen Tabelle. Dort erstellst dann noch halt weitere dinge was die Analyse angeht etc. und fertig ist. |
Autor: | azraeldemon [ So 30 Jul, 2006 21:20 ] |
Betreff des Beitrags: | |
muss ich mal ausprobieren! |
Autor: | azraeldemon [ Di 01 Aug, 2006 15:21 ] |
Betreff des Beitrags: | |
macht er leider nicht! wirft keinen fehler aus also der code scheint richtig zu sein aber das partner feld in der accounts bleibt bei 0 |
Autor: | Sano [ Di 01 Aug, 2006 16:21 ] |
Betreff des Beitrags: | |
mach es dir leicht und verbiete multis... dann is sowas doch von vornerein ausgeschlossen... ich kenne server bei denen multis verboten sind... dann solln se sich meinetwegen den acc teilen.. |
Autor: | Kevz [ Di 01 Aug, 2006 16:27 ] |
Betreff des Beitrags: | |
Verboten ist gut, ob sie es durchsetzen können ist eine andere frage*sfg*, Ich habs direkt bei der Erstellung eines Charakters gemacht und da bin ich mehr als zuversichtlich, das es garantiert keine Multis gibt ![]() |
Autor: | azraeldemon [ Di 01 Aug, 2006 21:07 ] |
Betreff des Beitrags: | |
es ist verboten mehr als einen account zu haben! pro account nur eine email diese email darf es nur einmal geben des weiteren wird die IP erfasst! um aber paaren die nur einen rechner haben es zu ermöglichen unterschiedliche chars zu spielen haben wir das RLpaare system drin! denn kann ja nicht jeder nen rechner haben , sie müssen uns nur den beweiss liefern das es sich wirklich um 2 personen handelt! so und um die zu entdecken die meinen sich einfach mehr als einen account zu machen und sich nicht zu melden dafür ist die loganalyse aber dort werden auch die rlpaare angezeigt , des wollt ich das die dort ausgespart werden wenn sie eingetragen sind! |
Autor: | dunkler Lord Artus [ Mi 27 Dez, 2006 18:11 ] |
Betreff des Beitrags: | |
kann mir bitte einer verraten in welchem tread die loganalysis1.php zu finden ist ich finde sie einfach nicht aber will sie doch ein bauen ^^ danke schon mal im vorraus Edit: hat sich erledigt hab was gefunden was dem entspricht ^^ |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |