Hvordan blokere man ISP via PHP?

Tags:    php

Hej.

Jeg er lige nu i gang med at lave en funktion til at blokere via den besøgenes ISP. Lige nu har jeg ikke helt fundet ud af, hvordan jeg skal kunne gøre det, selvom jeg har rodet lidt med in_array og preg_match. Indtil nu har intet virket, som jeg havde forventet...

Grunden til at jeg vil gøre det er, at jeg tidligere har observeret, at der var nogle specifikke ISP'er, som oprettede bruger hver eneste dag over flere måneders tid, uden af nogle af dem foretog noget som helst. Derudover kunne man også se, at deres e-mail adresser ikke virkede til at være lavet manuelt, men med en eller anden bot, som bare fyrede en masse kombinationer af hos hotmail og andre lignede steder.

Man kunne udover det også se, at de kom fra rusland og Ukraine, hvilket må være endnu en grund til at finde det suspekt.

Min PHP kode ser sådan her ud:
Fold kodeboks ind/udPHP kode 


Det virker dog ikke til, at man med et wildcard på denne måde kan bruge in_array (se sidste $blacklisted_hosts). Det virker dog, hvis man skriver den specifikt ind, men det virker som en meget ineffektiv måde at gøre det på.

Er der nogle, som ved, hvordan man kan lave det med wildcards eller med preg_matchs, som benytter et array til at se, hvilke der er blacklistede?

På forhånd, tak for hjælpen :).



Indlæg senest redigeret d. 26.11.2013 17:46 af Bruger #14776
9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du kunne evt benytte strstr, som kigger på en en string findes i en string.

Fold kodeboks ind/udPHP kode 


Virker desværre ikke, har også prøvet med nogle ændringer, som heller ikke virkede...


heller ikke hvis du lige retter min typo fra fasle til false ? =)





Du kunne evt benytte strstr, som kigger på en en string findes i en string.

Fold kodeboks ind/udPHP kode 




Nye hostnames/proxier kan man altid købe sig til eller finde gratis, du bør nok overveje alternativ sikring af bruger oprettelsen.

Gør som andre..

/J



Du kunne evt benytte strstr, som kigger på en en string findes i en string.

Fold kodeboks ind/udPHP kode 


Virker desværre ikke, har også prøvet med nogle ændringer, som heller ikke virkede...

Nye hostnames/proxier kan man altid købe sig til eller finde gratis, du bør nok overveje alternativ sikring af bruger oprettelsen.

Gør som andre..

/J


Det er ikke en mulighed at blokere per IP, hvis det er det du mener. Har ikke husket/gemt alle de IP adresser, som jeg fik fra dem, men bare deres ISP, da det var en gennemgående ting på de fleste af deres oprettelser.

Da hjemmesiden er udelukkende dansk, så ser jeg ikke nogen særlig grund til ikke at blokere for ukrainske og russiske ISP'ere, da de jo alligevel ikke kan få særlig meget ud af hjemmesiden.

Hvis du tænker med hensyn til TDC, så bliver den fjernet, når jeg har fået det til at virke. Det gør den fordi, at der er rigtig mange danskere, som benytter sig af TDC, deriblandt mig selv.

Jeg vil dog også gerne lave et IP blokeringssystem senere, men det vil ikke skade også at kunne blokere på ISP niveau, så længe man tænker over, hvad/hvem man blokere for.



Indlæg senest redigeret d. 27.11.2013 09:29 af Bruger #14776
Hej.

Jeg har noget lignede det samme "problem" som dig, men dog ikke med vilkårlige oprettelser fordi jeg bruger spamsikring i form af et regnestykke og et billede.

Dette har pr. dags dato virket perfekt siden launch, til trods for at der iflg. min logfil kommer mange udenlandske ISP'er ind på siden.

Men når de ikke kan oprette sig som medlem mener jeg ikke det gør noget at de kigger med,
Da hjemmesiden er udelukkende dansk, så ser jeg ikke nogen særlig grund til ikke at blokere for ukrainske og russiske ISP'ere, da de jo alligevel ikke kan få særlig meget ud af hjemmesiden.

Jeg ville lave noget spamsikring på oprettelsen, alternativt kan du bruge Google's fine spamsikring.

Det er ikke en mulighed at blokere per IP, hvis det er det du mener. Har ikke husket/gemt alle de IP adresser, som jeg fik fra dem, men bare deres ISP, da det var en gennemgående ting på de fleste af deres oprettelser.

Dem kunne du jo starte med at indsamle, når dit medlem logger ind næste gang.

Mvh.





Indlæg senest redigeret d. 27.11.2013 13:15 af Bruger #17610
Hej.

Jeg har noget lignede det samme "problem" som dig, men dog ikke med vilkårlige oprettelser fordi jeg bruger spamsikring i form af et regnestykke og et billede.

Dette har pr. dags dato virket perfekt siden launch, til trods for at der iflg. min logfil kommer mange udenlandske ISP'er ind på siden.

Men når de ikke kan oprette sig som medlem mener jeg ikke det gør noget at de kigger med,
Da hjemmesiden er udelukkende dansk, så ser jeg ikke nogen særlig grund til ikke at blokere for ukrainske og russiske ISP'ere, da de jo alligevel ikke kan få særlig meget ud af hjemmesiden.

Jeg ville lave noget spamsikring på oprettelsen, alternativt kan du bruge Google's fine spamsikring.

Det er ikke en mulighed at blokere per IP, hvis det er det du mener. Har ikke husket/gemt alle de IP adresser, som jeg fik fra dem, men bare deres ISP, da det var en gennemgående ting på de fleste af deres oprettelser.

Dem kunne du jo starte med at indsamle, når dit medlem logger ind næste gang.

Mvh.


Det er også kun i forhold til bruger oprettelse, at det var tiltænkt, og muligvis på kontakt siden, hvis det bliver for meget spam, som jeg vil modtage den vej. Jeg gemmer desuden også deres IP adresser, men har ryddet databasen for alle de døde brugere, så har ikke deres IP adresser liggende mere, dog har jeg gemt deres ISP'ere.

Jeg har også en Captcha, som jeg selv har programmeret, som jeg gør brug af på min kontakt side, men det er selvfølgelig en mulighed også at gøre brug af den på bruger oprettelsessiden.

heller ikke hvis du lige retter min typo fra fasle til false ? =)


Har husket at ændre den, men det virker lidt som om, at det er dét der array, som er skyld i, at det ikke helt fungere. Lavede en alternativ metode med brug af en for løkke, men det virkede heller ikke.

Nogen andre idéer?



Indlæg senest redigeret d. 27.11.2013 23:58 af Bruger #14776
Jeg har lavet en simple klasse der henter oplysningerne gratis, ville nok undersøge om de havde et API man kan tilkøbe sig adgang til istedet, anyways her er et dump af objeket som du kan tilgå

Fold kodeboks ind/udKode 


så den her kode er hvad du ender op med:
Fold kodeboks ind/udPHP kode 


Edit: du kunne evt ændre det til Country !== "Denmark" istedet for at bruge host eller isp



Indlæg senest redigeret d. 28.11.2013 15:51 af Bruger #3427
Jeg har lavet en simple klasse der henter oplysningerne gratis, ville nok undersøge om de havde et API man kan tilkøbe sig adgang til istedet, anyways her er et dump af objeket som du kan tilgå

Fold kodeboks ind/udKode 


så den her kode er hvad du ender op med:
Fold kodeboks ind/udPHP kode 


Edit: du kunne evt ændre det til Country !== "Denmark" istedet for at bruge host eller isp


Undskyld jeg ikke har skrevet før, men jeg fandt en møde at gøre det på, efter at have kigget på, hvordan jeg gjorde på min live hjemmeside, for at stoppe dem ;-).

Jeg benyttede mig bare af preg_match i stedet til at tjekke for ISP'en.




Virker desværre ikke, har også prøvet med nogle ændringer, som heller ikke virkede...

Nye hostnames/proxier kan man altid købe sig til eller finde gratis, du bør nok overveje alternativ sikring af bruger oprettelsen.

Gør som andre..

/J


Det er ikke en mulighed at blokere per IP, hvis det er det du mener. Har ikke husket/gemt alle de IP adresser, som jeg fik fra dem, men bare deres ISP, da det var en gennemgående ting på de fleste af deres oprettelser.

Da hjemmesiden er udelukkende dansk, så ser jeg ikke nogen særlig grund til ikke at blokere for ukrainske og russiske ISP'ere, da de jo alligevel ikke kan få særlig meget ud af hjemmesiden.

Hvis du tænker med hensyn til TDC, så bliver den fjernet, når jeg har fået det til at virke. Det gør den fordi, at der er rigtig mange danskere, som benytter sig af TDC, deriblandt mig selv.

Jeg vil dog også gerne lave et IP blokeringssystem senere, men det vil ikke skade også at kunne blokere på ISP niveau, så længe man tænker over, hvad/hvem man blokere for.


Nej tænkte mere på at tage MaxMinds geolocation og banne de lande der er gældende.. Den er så vidt jeg ved gratis hvis du kun ønsker "lande" og ikke byer mm..

Så kan du sparke ukraine og rus videre

Vh




Indlæg senest redigeret d. 03.12.2013 12:30 af Bruger #5789
t