Je suis un développeur iphone - nouveau sur le web dev, alors soyez patient!
J'utilise actuellement MAMP pour les tests locaux.Comment gérer les adresses IPv6 avec IPv4 PHP
J'ai une section hautement sécurisée sur mon site. Avec exiger un utilisateur/passe - il vérifie également l'adresse IP de l'utilisateur. Si le compte n'a pas déjà été utilisé depuis cette adresse IP, il ajoutera cette adresse IP, ainsi qu'un identifiant unique, à une table d'attente et enverra à l'utilisateur un courrier électronique lui demandant de confirmer l'accès à son compte depuis cet emplacement.
Si l'utilisateur se connecte et que son adresse IP ne correspond à aucune adresse IP associée à son ID utilisateur dans ma table 'allowed', il exécute la tâche ci-dessus et reçoit un e-mail.
Le code que j'utilise pour générer l'URL du lien qu'ils cliquent sur ressemble un peu à ceci:
if (preg_match('/^127./',$ip)) {
// accessed from this machine
$val_url = "http://localhost:8888/mywebsite/admin/aproove_ip.php?email=$admin_email&val=$hash";
}
else if (preg_match('/^192\.168./',$ip)) {
// accessed form a local networked computer
$val_url = "http://super.local:8888/mywebsite/admin/aproove_ip.php?email=$admin_email&val=$hash";
// note super.local is my machine's address, 8888 is MAMP port
}
else {
// accessed from the WWW
$val_url = "http://www.mywebsite.com/admin/aproove_ip.php?email=$admin_email&val=$hash";
}
Maintenant, cela a parfaitement fonctionné lors des tests sur mon ordinateur. Cependant, j'ai décidé (ne me demandez pas pourquoi) de tester depuis mon iPod Touch et dans l'e-mail qu'il m'a envoyé (pour valider l'adresse IP), il m'a donné l'adresse complète en ligne comme si elle avait été accédée depuis le WWW (c'est-à-dire que ni l'une ni l'autre des regex n'étaient satisfaites). J'ai regardé dans la table d'attente qui contient les demandes, et l'adresse IP demandée était: fe80::da30:62ff:fe18:6681
.
Je suppose que c'est ipv6? - Ce que je dois savoir est la suivante:
- Dois-je attendre ipv6 addressess pour frapper mon site quand il va vivre?
- Comment puis-je savoir si elle était une demande locale (comme mes regex est pour 192.168 ... et 127 ...)
Je vous serais très reconnaissant des conseils sur ce que je trouve vraiment déroutant
+1 de vouloir rendre votre code IPv6 compatible! Trop de programmes écrits aujourd'hui ne prennent pas en charge IPv6 même si les adresses IPv4 sont déjà épuisées. – snap