Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] IP-Adressen z.T. zensieren (https://www.delphipraxis.net/118902-%5Bphp%5D-ip-adressen-z-t-zensieren.html)

Chrissi91 17. Aug 2008 17:49


[PHP] IP-Adressen z.T. zensieren
 
Hallo,

ich hab mal wieder ein Problem mit PHP. Es hapert daran, dass ich sogut wie keine Funktionen auswendig kann. :D

Es geht mir darum IPs aus der Datenbank abzufragen, die letzten 2 oder 3 Blöcke mit Sternchen zu zensieren und auszugeben.

Angenommen ich habe die IP 87.165.84.585. Dann möchte ich es in folgendes Format "konvertieren": 87.165.**.***

Wichtig ist mir, dass wenn der 3. Block 2 Zahlen hat, auch nur 2 Sternchen kriegt. Also wichtig ist es nicht, aber wenn ich mir schon die Mühe mache das zu zensieren, dann soll es auch ordentlich sein. ;)

Nun kenn ich kaum Funktionen von PHP mit denen ich da rangehen könnte. Gibt es vll eine, die Einen String nach einem Substring durchsucht und dann die Positionen in einem Array o.ä. ausgibt?

Wie siehts mit dem Rechtlichen aus: Wenn ich bei abgegebenen Kommentaren auf der Website die ersten beiden IP-Blöcke anzeigen lasse, dürfte das keinen Ärger machen, oder gab es den schon? Ansonsten lasse ich nur den 1. Block anzeigen. (Mir ist schon bewusst, dass ich hier keine Rechtsberatung kriege, aber vielleicht hat ja schon jemand von so einem "Fall" im Internet gehört bzw. gelesen).

Dax 17. Aug 2008 17:58

Re: [PHP] IP-Adressen z.T. zensieren
 
s/(\d+).(\d+).\d+.\d+/$1.$2.**.***/g eventuell?

Matze 17. Aug 2008 17:58

Re: [PHP] IP-Adressen z.T. zensieren
 
Hallo,

ich würde keine IP anzeigen, da es keinen interessiert und Benutzer, die damit nichts anfangen können, irritiert es nur.

Zensieren könntest du mit Regulären Ausdrücken (preg_replace).

Grüße

BUG 17. Aug 2008 19:12

Re: [PHP] IP-Adressen z.T. zensieren
 
Zitat:

Zitat von Chrissi91
Also wichtig ist es nicht, aber wenn ich mir schon die Mühe mache das zu zensieren, dann soll es auch ordentlich sein. ;)

Soll es ordentlich aussehen oder ordentlich zensieren?

Schon im ersten Fall ist das fraglich und im zweiten würdest du der "Zensur" nichts gutes tun, da du bei 2-stelligen Zahlen verrätst, dass sie unter hundert liegen.
Außerdem ist es schon ungewöhnlich zu Kommentaren zensierte IP mit auszugeben. Wozu?

MfG,
Bug

mkinzler 17. Aug 2008 19:37

Re: [PHP] IP-Adressen z.T. zensieren
 
Zudem ist ja die Aussagekräftigkeit von synaimsichen IP-Adressen recht dürftig

Valle 17. Aug 2008 19:44

Re: [PHP] IP-Adressen z.T. zensieren
 
Falls du es doch machen möchtest, dann bitte nicht mir regulären ausdrücken. Die sind sehr langsam und ich würde (dem Webserver zu Liebe) darauf verzichten wenn es nur geht. Am einfachsten meiner Meinung nach so:

Code:
function censor_ip($ip) {
  $fragments = explode(".", $ip);
  return $fragments[0]."*.*.*";
}
Mit freundlichen Grüßen,

Valle

Matze 17. Aug 2008 20:11

Re: [PHP] IP-Adressen z.T. zensieren
 
Zitat:

Zitat von Valle
Die sind sehr langsam und ich würde (dem Webserver zu Liebe) darauf verzichten wenn es nur geht.

Sie sind langsamer als andere Dinge, richtig, aber wenn man nicht gerade sehr sehr viele (und ich meine wirklich viele) einsetzt merkt man das nicht. Und so komplex ist der reguläre Ausdruck nicht. Wenn du schon auf Geschwindigkeit abzielst, dann wäre das schnellste, die zensierten IPs beispielsweise in eine zusätzliche Spalte in die Datenbank zu schreiben und zukünftig von dort auszulesen. Das spart vielleicht 0.005s pro IP (ganz grob geschätzt). Dann läuft das Ersetzen der Zahlen einmalig ab.
Und ich schätze, deine Lösung zu den RegEx ist wenn, dann auch nicht um einen so deutlich größeren Wert schneller.
Klar kommt es auf den Server & ähnliches an, aber ich schweife ab. :stupid:

Noch schneller wäre es natürlich, die IP gar nicht erst anzuzeigen (somit auch nicht zu zensieren), was ich als Besucher einer Seite auf jedenfall, wie genannt, befürworten würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz