Je souhaite enregistrer l'adresse IP d'un utilisateur dans ma base de données au cas où des problèmes d'ordre juridique surgiraient et que nous devions déterminer qui avait effectué cette action. Comme je doute fortement, je vais devoir utiliser ces données (enfin, peut-être pour compter des hits uniques ou quelque chose) pensez-vous que je peux simplement vider le REMOTE_ADDR
dans un champ? Si oui, quelle devrait être la longueur de ce champ? 39 caractères devraient correspondre à une adresse IPv6, non? Je ne sais pas si je pourrai en avoir, mais juste au cas où ...Enregistrement d'une adresse IP dans la base de données
Répondre
Si vous utilisez Postgres, il existe des data types for network addresses spécifiques.
Dans SQL Server, nous avons utilisé VARBINARY [16] pour les adresses IP pour IPv4 (4 octets) et IPv6 (16 octets).
Mais dans votre cas, si c'est juste pour un examen manuel occasionnel et non pour le traitement de la machine, il suffit de stocker la chaîne. (Et oui, 39 caractères seraient le maximum.)
Stockez certains une représentation complète et sans ambiguïté des données. Lorsque vous avez besoin d'interroger les données et lorsque vous déterminez le type de requête sur les données dont vous avez besoin, vous devez déterminer comment transformer les données afin de pouvoir les interroger efficacement.
Si vous stockez l'adresse IP de, disons, la première visite de l'utilisateur dans une session utilisateur donnée, vous pouvez envisager d'effectuer une recherche DNS inversée sur l'adresse IP. Cela donnera des informations sur le FAI de l'utilisateur. En cas de problèmes juridiques, vous avez maintenant plus d'informations. Mais comme ces recherches coûtent cher (en termes de temps), vous pouvez le faire en tâche de fond et vous pouvez le faire uniquement pour les hits initiaux, et non pour les autres hits de la même adresse IP dans une session utilisateur donnée.
La méthode la plus efficace pour stocker des adresses IP dans un champ de base de données est de les convertir en nombre entier au lieu d'utiliser une chaîne. Comme vous le mentionnez REMOTE_ADDR, je suppose que vous utiliserez PHP. Vous pouvez convertir les addres IP à une valeur appropriée en utilisant ip2long()
sprintf('%u',ip2long($_SERVER['REMOTE_ADDR']))
Pour reconvertir un, vous pouvez utiliser les cheveux de DB IP long2ip()
- 1. Adresse IP vers le pays avec base de données
- 2. adresse IP dans Silverlight
- 3. Adresse IP de suivi
- 4. IP au pays sans base de données
- 5. Pourquoi valider une adresse IP?
- 6. adresse IP de la machine cliente
- 7. Enregistrement d'images sur la base de données
- 8. Adresse IP Navigateur
- 9. adresse IP du client
- 10. Fetch Adresse IP
- 11. Géocode une adresse IP?
- 12. Adresse IP de l'ordinateur réseau
- 13. Suivi d'une adresse IP
- 14. trim ip adresse octet
- 15. Attraper adresse IP change
- 16. Adresse IP ejabberd
- 17. Adresse IP? - Cocoa
- 18. Enregistrement dans une base de données SQL?
- 19. Adresse IP de paramétrage Applescript
- 20. Détecter une adresse IP contrefaite?
- 21. Enregistrement dans la base de données à l'aide de JQuery
- 22. Enregistrement de la base de données dans Hash-of-hashes
- 23. Données UDP de l'application Mac sur sa propre adresse IP
- 24. Adresse IP et contrôle Datagridview
- 25. Enregistrement des événements ASP.NET dans la base de données
- 26. Insertion d'un enregistrement dans la base de données Msaccess
- 27. Enregistrement flux Rss dans la base de données
- 28. Comment obtenir une adresse IP?
- 29. Bogus adresse IP de getaddrinfo & inet_ntop
- 30. interne et externe Adresse IP dans 10.4
Oh ... ne pas penser à chercher un tel type de données. Autant utiliser aussi ça! – mpen