Maison > Questions et réponses > le corps du texte
P粉8603709212023-09-05 15:18:18
Le problème est qu'IPv6 et IPv4 ne sont en aucun cas couplés. Une adresse v6 ne peut pas être déduite d’une adresse v4 ou vice versa.
À mon humble avis, vous devriez éviter d'authentifier les utilisateurs par adresse IP, car les adresses IP sont usurpées et cette pratique peut entraîner des problèmes comme celui-ci. Cela dit, il existe plusieurs « solutions ».
Désactivez IPv6 sur le serveur web hébergeant votre application PHP. Puisque vous n'avez pas mentionné de quel type de serveur Web il s'agit, vous devriez pouvoir rechercher sur Google quelque chose comme "désactiver Apache ipv6" pour savoir comment y parvenir. Cela devrait garantir que les adresses IPv4 sur les deux serveurs sont les mêmes. Personnellement, je n'aime pas cette solution car elle entrave l'adoption d'IPv6.
Activez IPv6 sur le serveur de nœud. Notez qu'un client peut toujours préférer IPv4 à IPv6 pour une raison quelconque, et rien ne garantit qu'il utilisera IPv6 pour les deux serveurs réseau.
Vous pouvez proxy tous les appels d'un serveur Web à un autre et transmettre l'adresse IP d'origine dans l'en-tête "X-Forwarded-For". Cela introduira une certaine surcharge, mais l'adresse IP source sera plus stable.
Personnellement, j'éviterais d'utiliser des adresses IP et implémenterais une sorte de jeton stocké sur le client et pouvant être vérifié sur les deux serveurs via une base de données partagée si possible.