Comment déterminer l'en-tête par défaut Accept-Language en fonction de l'IP (indicatif de pays)?
Question
Je souhaite améliorer la protection antispam de mon site. J'ai découvert qu'après avoir été banni par ip bots, ne modifiez pas les en-têtes http Accept-Language et Accept-Charset (la plupart des spams sont donc livrés avec windows-1251 accept-charset). Je comprends que des utilisateurs normaux peuvent avoir des préférences inhabituelles, mais comment puis-je déterminer quels en-têtes de jeu de caractères et de langue sont les plus populaires dans un pays donné? TIA
La solution
Cette réponse comporte deux parties: déterminer l’origine de votre utilisateur et la langue qu’il parle. Pour déterminer leur origine, vous pouvez utiliser un service tel que hostip.info , qui a une API qui prend une adresse IP et retourne un code de pays. Deuxièmement, vous auriez besoin d’une liste telle que celle-ci pour traduire le code de pays. dans un code de langue. Vous pouvez utiliser une base de données complète ou un simple dict pour stocker le mappage.