1 Bann erstellt 3 Bann Regeln - Zusammenfassung möglich?

  • Guten Tag,


    ich hab mal eine Frage. Und zwar habe ich ein TeamSpeak auf Linux. Nun ist es so das wenn ich jetzt einen Benutzer Banne, sagen wir für 3 Stunden, werden 3 Bans erstellt, in der Ban liste.

    1x Ohne Name, IP und UID aber mit Grund.

    1x mit IP und Grund aber ohne Name und UUID

    und 1x mit UUID, Name, Grund aber keine IP.



    Kann man das so einstellen, das er nur einen Ban erstellt wo einfach Name, IP, UID und Grund drinnen stehen?




    Über eine Antwort würde ich mich sehr freuen.




    Gruß

    CuzImCloud

  • Theoretisch ja aber es würde den Bann so gut wie sinnlos machen. Damit ein benutzer als gebannt erkannt wird und nicht mehr auf den Server kommt müssen alle Bedingungen des Banns erfüllt sein. Beispiel 1:


    Ban 1: IP=8.8.8.8 Name=Test Uid=testestest=


    In diesem Fall muss der user von der IP 8.8.8.8 verbinden UND den Namen Test haben UND mit der identität testestest= verbinden um nicht auf den server zu kommen. Wenn er seinen namen ändern würde würde er joinen können.


    Beispiel 2:


    Ban 1: IP=8.8.8.8

    Ban 2: Name=Test

    Ban 3: Uid=testestest=


    In diesem Fall darf der user nicht joinen wenn er ENTWEDER von der IP 8.8.8.8 verbindet ODER den Namen Test hat ODER mit der identität testestest= verbindet. wenn er jetzt eine oder zwei sachen ändern würde kann er trozdem nicht auf den server.

  • Hmm oke. Das ist doof.


    Ich bin nähmlich Dabei die Banliste in ein Interface einzubauen, und da ist es nervig wenn man dann 3 Bans von ein und dem selben Benutzer hat.



    Kann man das zumindest in TS3 PHP Framework ändern irgendwie? Das ich zwar im TS die 3 Bans habe, aber im Interface nur 1 Ban?



    //edit und das ich diesen dann auch über das Interface entbannen kann.

  • Klar kannst du das ändern du baust sie ja selber ein. Nimm einfach die 3 bans schau auf die zeit wo gebannt wurde und wenn die gleich ist oder +/- 1 sekunde dann fügst du sie zusammen.


    Als kleiner Anstoß: https://github.com/Wruczek/ts-…blob/2.0/src/bans.php#L20 / https://github.com/Wruczek/ts-website/blob/1.0/bans.php#L63 (Achtung da sind bans einzeln)

  • Sebbo

    Hat den Titel des Themas von „Nur 1 Ban“ zu „1 Bann erstellt 3 Bann Regeln“ geändert.
  • Kann man das zumindest in TS3 PHP Framework ändern irgendwie? Das ich zwar im TS die 3 Bans habe, aber im Interface nur 1 Ban?

    //edit und das ich diesen dann auch über das Interface entbannen kann.

    Wie Bluscream bereits geschrieben hat: TeamSpeak erstellt pro Ban mehrere Regeln, weil die Bedingungen (also Name, IP Adresse, ...) mittels UND verknüpft werden.


    Wie du damit in deiner eigen entwickelten Software umgehst, ist dir überlassen. Hier kannst du natürlich alle 3 Regeln als eine Regel anzeigen / zusammenfassen.


    Aus meiner Sicht macht das jedoch keinen Sinn, denn in der Regel löscht man ab und zu nur ein paar dieser Regeln (z.B. wo die IP Adresse gesetzt ist), da die meisten Benutzer eine dynamische - eine regelmäßig wechselnde - IP Adresse besitzen und dadurch kann es mal passieren, dass die IP 1.2.3.4 mal dem User gehörte, der nicht mehr drauf soll bzw. darf und später aber z.B. dir selbst oder einem deiner Kumpels gehört.


    Um sie in deiner eigenen Software zusammen gefasst darzustellen, würde ich wie folgt vorgehen:

    1. Liste aller Bans abfragen
    2. Jeden Ban mit dem anderen vergleichen (Bangrund + Uhrzeit)
    3. Wenn der Bangrund und die Uhrzeit (+/- 1-5 Sekunden) identisch sind, ist es vermutlich der selbe Ban -> gleicher Bann
    4. Ansonsten einen neuen Ban anzeigen, da alle Bans in der Regel in der aufeinanderfolgenden Reihenfolge zurück gegeben werden sollten (Stichwort "Incremental Key" in der Datenbank)

    Nachfolgend ein Beispiel für die mögliche Logik, wie man das machen könnte:

    Achtung: Der Code ist nicht getestet und soll nur als Pseudo-Code dienen!

    Danach solltest du ein Multidimensionales Array $bans haben, wobei das erste Array jeweils in Sub-Arrays alle zusammengehörigen Banregeln haben sollte:

    Die genauen Felder des Arrays musst du auslesen - die habe ich mir gerade nur für das Beispiel ausgedacht.

  • Sebbo

    Hat den Titel des Themas von „1 Bann erstellt 3 Bann Regeln“ zu „1 Bann erstellt 3 Bann Regeln - Zusammenfassung möglich?“ geändert.