Questionalgorithme de recherche rapide des fichiers pour les adresses IP
Quel est le meilleur moyen de trouver si une adresse IP existe dans un fichier qui contient des adresses IP triées comme:
219.93.88.62 219.94.181.87 219.94.193.96 220.1.72.201 220.110.162.50 220.126.52.187 220.126.52.247
Contraintes
- Aucune base de données (par exemple, MySQL, PostgreSQL, Oracle, etc.)
- prétraitement Infrequent est autorisé (voir la section possibilités)
- serait bien de ne pas avoir à charger le fichier chaque requête (131Ko)
- utilise de moins de 5 méga-octets d'espace disque
- Aucun modules PHP supplémentaires
Détails du fichier
- une adresse IP par ligne
- 9500+ lignes
Solutions possibles
- Créer une hiérarchie de répertoires (radix tree?) Puis utilisez
is_dir()
(malheureusement, il utilise 87 méga-octets)
Rien de concret mais peut-être une source d'inspiration: http://www.scribd.com/doc/10988897/IP-Address-Lookup-Algorithms – elias