如何在IPv4 PHP中处理IPv6地址
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在IPv4 PHP中处理IPv6地址,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2005字,纯文字阅读大概需要3分钟。
内容图文
![如何在IPv4 PHP中处理IPv6地址](/upload/InfoBanner/zyjiaocheng/752/38c751cfaca1427487d9078bb9ba5bcc.jpg)
我是一名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 addressess在它上线时点击我的网站吗?
>我如何判断它是否是本地请求(如我的正则表达式为192.168 ……和127 ……)
我非常感谢任何有关这方面的建议,因为我觉得它真的令人困惑
解决方法:
如果要确保不发生IPv6连接,可以在您的apache配置中添加Listen 0.0.0.0:80.但是大多数网络主机不支持IPv6(我知道,我们是在2011年),因此人们甚至不可能通过IPv6连接到你.你看到这个的唯一原因是因为bonjour(使.local地址工作的原因)在IPv6上运行.
如果您想准备好IPv6代码,几乎不需要进行任何更改,因为大多数IP PHP功能都可以在IPv4和IPv6上运行.我记得的唯一变化是将MySQL表中的varchar数据类型增加到IPv6地址的最大长度(39).
我不确定IPv6是否遵循与IPv4相同的subnet规则,但我认为验证IPv6地址是本地的要困难得多.
编辑:
fe80 :: / 10似乎是本地链接地址,它可能就像检查前4位数一样简单.
内容总结
以上是互联网集市为您收集整理的如何在IPv4 PHP中处理IPv6地址全部内容,希望文章能够帮你解决如何在IPv4 PHP中处理IPv6地址所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。