Verwijderd

Verwijderd

een explode doen op het ipadres, en de hieruit volgende array tegen een database result aanhangen is denk ik zo traag nog niet. Is in ieder geval wel t makkelijkst om de IP-adressen in bij te houden. Je zou het ook met een text-file'tje kunnen doen.

Ik dacht meer aan zoiets: http://us2.php.net/preg_match Maar ik weet niet hoe dit nuttig zou kunnen zijn en hoe de syntax dan moet zijn.

waarom niet in_array() ? als het er toch maar 5 tot 10 zijn.

in-array lijkt goed maar.... Kan ik dan wildcards gebruiken? Dat is essentieel. Bij IP nummers moet bijvoorbeeld numer 3 en 4 gelijk zijn aan iets, terwijl 1 en 2 mogen varieren. Wanneer iemand een IP heeft waar getal 2 en 3 gelijk zijn aan de getallen 3 en 4 van een fout domein krijg je foutieve uitsluiting.

Banned IP = x.x.123.234

1.123.234.157 moet dan doorgelaten worden
2.34.123.234 echter niet

misschien moet je deze functie even wat bekijken, http://nl2.php.net/manual/en/function.ip2long.php Misschien dat je dan wat meer kan werken met de waardes tussen de bepaalde ip adressen.

Maar het lijkt mij weinig zin te hebben om filters te hebben op ..123.234… Dan kun je net zo goed een random getal nemen om mensen te weigeren…
Als je bepaalde providers wilt blokken, dan zit je net omgekeerd, 123.234.123.*.
(en dan kun je ip2long wel goed gebruiken…)

[quote:5122d44c2d="apenstaartje"]Als je bepaalde providers wilt blokken, dan zit je net omgekeerd, 123.234.123.*.[/quote:5122d44c2d] Uiteraard, gaat gewoon om het idee. .odol is ook geen bestaande extensie ;-) Ik had de IP versie misschien niet moeten noemen. Ik wil vooral de NSlookup versie oplossen, en dan kan de IP situatie vanzelf ook op die manier.

Dus deze vergelijking liefst in één commando met een makkelijk te wijzigen lijst opties:
indien $NSlooup bevat (‘spamdomein.net’ of ‘.viagraboer.odol’ of ‘casino.net’) dan exit(‘wegwezen’);
waarbij de * als een wildcard werkt

Ik denk dat een combinatie van explode en ereg goed zou kunnen werken, dus eerst het ip exploden en dan al de stukjes afgaan met ereg (of preg_match)

eerst dus [url=http://nl2.php.net/manual/en/function.gethostbyname.php]gethostbyname[/url] en dan kijken of deze binnen de range valt met ip2long..

Ik ga nog verder generaliseren (en de nslookup/ip gedachte loslaten), want dit gaat de verkeerde kant op.

Ik heb een tekst en ik wil checken of een van deze stukken in de tekst voorkomt:
.apple.com’
'www
.domein.
'pictures
.flickr.com’

De sterretjes mogen weer alles zijn.
Hoe dit te doen?

[url=http://en.wikipedia.org/wiki/Regular_expression]Regular expressions[/url] are your friends... :)

[quote:f0da5b638a="GREENSKiN"][url=http://en.wikipedia.org/wiki/Regular_expression]Regular expressions[/url] are your friends... :)[/quote:f0da5b638a] Daar was ik al bang voor, en daarom hoopte ik dat iemand dat enigszins kan concretiseren,

. <- ieder willekeurig karakter * <- het volgende karakter minstens eenmaal, of vaker

.* <- matcht dus alles

^ <- begin van de regel
$ <- einde van de regel

^appel.*$ <- matcht dus appel, appelsap, appeltaart, maar niet appel

In sommige regex talen moet je haakjes om de term heenzetten. Dan dus ^appel(.)$ ipv ^appel.$.

Easy-peasy! :slight_smile:

Iets als ...

=~ /[IPv6:((3ffe|2001|2002)(:[da-f]{0,4}){3,7})/ig

Wellicht even ombouwen voor alleen een ipv4 adres…

=~ /(d{1,3}(.d{1,3}){3})/g

owja, nog even ombouwen naar de php variant.

Succes,