• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

remote_addr-abfrage in bestehendes script einbauen?

heaven

New member
und zwar in eine bereits bestehende tabelle, funzende tabelle, in ein funzendes script. geht sowas?

hintergrund ist folgender:

wir haben eine link-liste mittels mysql- und php-script erstellt, das klappt soweit prima. letztens in nem thread schrieb ich schonmal, dass uns da jemand mit anscheinend recht viel onlinezeit ärgert. jemand geht hin und klickt bei nahezu jedem link die "dead-link" funktion an. soll heißen, wenn wir in den admin-bereich gehen, bekommen wir knapp 200 broken-links-einträge...

natürlich stimmt das nicht, da die links nachweislich nicht broken sind. (ich wüsste jedenfalls nicht, dass jswelt.de nicht ereichbar wäre, zum beispiel *grins*)
dennoch kommt die fehlermeldung natürlich bei uns an. grundsätzlich finde ich das auch gut, denn so eine broken link-meldung macht ja sinn.

wenn aber jemand diese möglichkeit missbraucht, möchte ich gern in der lage sein, die entsprechende ip zu sperren. ich hab zwar noch keine ahnung, wie ich die ip sperren kann, aber grundsätzlich muss ich dazu ja erstmal wissen, welche ip diese scheiße macht.

wie kann ich so etwas in das bestehende script einfügen?
 
$REMOTE_ADDR gibt dir die IP Adresse des jeweilgen Users raus (oder war es doch $REMOTe_ADR? probiere es halt).

Die kannst du dann in ein Textfile schreiben und bei jedem Zugriff auf die Funktion prüfen, ob diese IP z.B. bei den letzten 5 dabei war und dann deaktivieren für z.B. eine Stunde.

Noch eleganter wäre es allerdings, einen HTTP-Connect beim auslösen der Funktion zu machen, ob der Link erreichbar ist und was der jeweilige Server ausliefert. Gibt es eine Fehlermeldung, wird der Link autmatisch gesperrt und Ihr darüber infomiert, wenn alles korrekt ist, wird der User für einen Zeitraum von der Funktion ausgesperrt. Alles klar und verständlich?
 
denkst du es dir so, dass du dann ne mail mit nem link darin bekommst, auf den du dann klicken kannst und dann sofort vor einem dialog landest 'möchten sie die folgende ip xxxxx sperren?' oder wie stellst du es dir vor?

@s-g: gute idee, aber is das nich irgendwie mist, wenn derjenige ne wechselnde ip hat? könnte man doch irgendwie mit nem cookie machen, dass wenn das dial-in und die ip übereinstimmen ein cookie gesetzt wird und derjenige dann keine links mehr eintragen oder als dead melden kann... würde glaub ich auch mit sessions gehen, aber ka ob das umbedingt besser wäre.
 
Zuletzt bearbeitet:
ööööhm....

@ style-guide:

"Die kannst du dann in ein Textfile schreiben und bei jedem Zugriff auf die Funktion prüfen, ob diese IP z.B. bei den letzten 5 dabei war und dann deaktivieren für z.B. eine Stunde. "

sowas z.b. schwebt mir vor. wer versucht, uns zu spammen, wird für ne stunde ausgesperrt und gibt vermutlich nach 10 minuten bereits auf.


"Noch eleganter wäre es allerdings, einen HTTP-Connect beim auslösen der Funktion zu machen, ob der Link erreichbar ist und was der jeweilige Server ausliefert. Gibt es eine Fehlermeldung, wird der Link autmatisch gesperrt und Ihr darüber infomiert, wenn alles korrekt ist, wird der User für einen Zeitraum von der Funktion ausgesperrt. Alles klar und verständlich?"

klar wäre das eleganter. *lach*
aber ich glaube, dazu bedarf es mehr fähigkeiten, als ich mir überhaupt auch nur ansatzweise vorstellen kann. eigentlich wäre das ne optimale lösung!


@ turminal:
nein, ich brauche keine mail. mir reicht im prinzip die angabe der ip-addi in der mysql-db, da ich dann erstmal schauen kann, von wo die überhaupt kommt (diese stealth-fake-proxy-server mal ausgenommen).

ich kann z.b. manuell mit den ip-angaben, die wir aus anderen anwendungen unserer site (aber eben nicht php) schon haben, abgleichen. vermutlich findet sich da schon jemand, der uns niedermachen will. ich denke mal, wir sind sone "spezielle" seite, dass wir nicht einfach von irgendwelchen arschlöchern fertiggemacht werden.

falls nicht, schwebt mir als zweiter schritt vor, dann tatsächlich eine art "ip-sperre" einzuführen. das wäre allerdings ein vermutlich recht komplizierter schritt. und das, wo mir schon der erste schritt recht kompliziert erscheint. *g*

du meinst, mit session-id's wäre das in den griff zu bekommen???


@ both:
meint ihr, man könnte die diversen ips der proxy-server umgehen, indem man zusätzlich cookies vergibt? wäre ne doppelte sicherheit, wenn der- oder diejenige nicht die annahme von cookies deaktiviert hätte. aber wäre bestimmt noch um einige komplizierter....
 
also sessions haben vor- und nachteile!

vorteil: auch mit ausgeschalteten cookies wäre der user ne zeit lang ruhiggestellt
nachteil: manche provider stellen die session dauer auf 5-10 minuten, ich weiss nun nicht, ob das nur für die idle zeit, also solange der user nix macht, gilt.
 
vergiss diesen broken-link kram, mach´s so:

if(@fopen("http://www.jswelt.de/index.php","r")) echo"<font color=green><b>reachable<b></font>";
else echo"<font color=red><b>unreachable</b></font>";

holdrio,
mo
 
ja, so könnte man es natürlich auch machen :D

das is die super lösung: keine ip's bannen, keine mailbomberähnlichen fluten, das is gut :)

einfach prüfen, ob das file auf dem remoteserver existiert :)
 
also diese sid's kenne ich bislang nur aus baseportal, und da orientiert sich das ganze an perl. wie das bei php aussieht, davon hab ich keine ahnung. bei baseportal ist es mehr oder weniger wirksam (aber das liegt vermutlich nur an meinem unzureichenden script *lach*)

woher kann ich denn erfahren, wie mein provider (strato) das eingestellt hat?
 
vergiss strato, vergiss sessions, mach das am besten so, wie michael das oben beschrieben hat, da kannst du dann auch den 'deadlink melden' kram rausnehmen, weil php da überprüft, ob das file auf dem remoteserver existiert.
 
*reholdriho*

und hi ho silver und überhaupt...

*lach* mo, ich hab nicht ein wort kapiert von dem, was du da geschrieben hast!

wenn ich meine grauen zellen ganz sehr anstrenge, ist das ne abfrage an die aufzurufende site, korrekt?
und wenn die tatsächlich erreichbar ist, wird ampelfarbentechnisch grün für reachable ausgegeben und ansonsten rot für "not reachable"?

und wo muss ich das dann einbauen, damit es klappt? das müsste ja irgendwo zwischen dem klick auf den dead-link und dem eintragen bei uns im admin-bereich erfolgen, auch noch korrekt?

(oder sowas wie in perl sone art put-if?)
 
fopen is der befehl für file-open, soweit ich das weiss. und die abfrage baust du einfach hinter dem link ein, sozusagen als indikator. ich würd das als tabelle machen und in die eine spalte packst du den link und in die andere die abfrage.
 
weia...

also strato kann ich leider net vergessen, weil darüber unsere site läuft. :D

wie genau baue ich denn das fopen hinter dem link ein? du schreibst, dass ich das als tabelle machen soll. dazu müsste ich also ne extra-tabelle erstellen, ja?
oder meinst du in die tabelle, in der bereits die links geführt werden? kann ich in sowas noch nachträglich ein extra-feld einbauen? und in welcher php-datei baue ich das dann ein?

mal ne doofe frage: was bringt mir das, wenn ich diese abfrage direkt hinter den (von mir einzubauenden) link reinquetsche? ich kann doch davon ausgehen, dass ich als admin nur einen link eingebe, von dem ich weiss, dass er funzt. oder hab ich das system net kapiert?

ich hab das jetzt so verstanden, dass bei (admin-)eingabe eines neuen links gecheckt wird, ob der funktioniert. nicht aber bei jedem durch den user neu angeklickten link. und falls doch, wie bekomme ich dann nachricht?
 
also, ich hab mir das mal auf dykeworld angeschaut, du kannst das gaaaanz einfach machen :)

du ersetzt den [Dead-Link] mit michaels code...

da du das über php machst, schätze ich mal, dass du da ne while schleife nutzt, der code sollte also wie folgt aussehen...

if(@fopen($row->id,"r")) echo"<font color=green><b>reachable<b></font>";
else echo"<font color=red><b>unreachable</b></font>";

du musst aber noch das id in deinen bezeichner für den link ändern, also unter welcher kategorie das ganze in der mysql datenbank läuft.
 
hm... wird nich so deutlich, drum hier ein bild...

die oberpunkte id, url und so weiter sind für mich kategorien
 

Anhänge

  • myadmin.jpg
    myadmin.jpg
    17,8 KB · Aufrufe: 7
Das für jeden Link zu integrieren, würde wahrscheinlich die Ladezeit sprengen, bsp EZines und Portale das wäre 48 Connects zu den Seiten bevor sich ein fitzelchen Code zum User bewegt. Mach das erst in der deadlink.php und wenn Dir mo's Script false ausgibt, schickt Die Mail. Die URL müsste Dir ja anhand der ID zur Verfügung stehen mit einem DB connect.

Wenn dann einer Spass hat, kannst du zumindest mit einer Menge PageImpressions angeben, wirst aber von den Mail's nicht mehr überflutet.
 
Zurück
Oben