【发布时间】:2011-11-09 13:35:03
【问题描述】:
我是一名 iphone 开发人员 - 网络开发新手,所以请耐心等待!
我目前正在使用 MAMP 进行本地测试。
我的网站上有一个高度安全的部分。除了要求用户/通行证外,它还检查用户的 IP。如果该帐户之前没有从该 IP 使用过,它会将该 IP 连同一个唯一 ID 添加到保留表中,并向用户发送一封电子邮件,要求确认他们从该位置访问其帐户。
如果用户登录,并且他们的 IP 与我的“允许”表中与他们的用户 ID 关联的任何 IP 都不匹配,它会执行上述任务,并且他们会收到一封电子邮件。
我用来生成他们点击的链接的 url 的代码看起来有点像这样:
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";
}
现在,在我的电脑上进行测试时,它运行良好。
但是,我决定(不要问为什么)从我的 iPod Touch 上进行测试,并且在它发送给我的电子邮件中(验证 IP),它给了我完整的在线地址,就好像它是从 WWW 访问的一样(即两个正则表达式都不满意)。我查看了包含请求的保留表,请求的 IP 是:fe80::da30:62ff:fe18:6681。
我猜那是 ipv6? - 我需要知道的是:
- 我是否应该期望 ipv6 地址在我的网站上线时访问我的网站?
- 如何判断它是否是本地请求(例如我的 192.168... 和 127... 的正则表达式)
我非常感谢任何关于这方面的建议,因为我觉得这真的很令人困惑
【问题讨论】:
-
+1 表示希望您的代码符合 IPv6 标准!即使 IPv4 地址已经用完,今天编写的太多程序仍然不支持 IPv6。