how to get user's ipv6 address by PHP????

2011-07-14 17:36:48 +08:00
 kojp
Quote Originally Posted by mmjanjust View Post
hi all,
how to get user's ipv6 address by php ?
the same way as ipv4
using $_SERVER['REMOTE_ADDR']

if that variable contains ipv4 address it means that client doesnt have ipv6, your server has missconfigured ipv6, your webserver doesnt have ipv6 support, your domain doesnt have aaaa record or if your site got both ipv4 and ipv6 address and everything is configured properly then most likely clients primary routing is via ipv4 (which is unusual but also might happen - might be forced by client or clients isp).
26493 次点击
所在节点    问与答
13 条回复
kojp
2011-07-14 17:37:36 +08:00
GOOGLE 了。。。有人给了一段转换函数,试了一下。。不靠谱呀。。。
究竟如何才能获取呢??
kojp
2011-07-14 17:46:24 +08:00
又GOOGLE 了一会儿。。。是不是有这么个情况?用的还是同一个函数

$_SERVER['REMOTE_ADDR']

但是,服务器也得有相关的IPV6设置??
CoX
2011-07-14 18:11:43 +08:00
先确定自己的服务器是不是支持ipv6吧,如果服务器不支持,是获取不到user ipv6地址的(应该根本不能访问)
kojp
2011-07-14 18:15:41 +08:00
@CoX

谢谢。。。我猜出大概也是这么个情况。

可是如何确定呢?服务器是本机,XP搭的一个APACHE+PHP+MYSQL环境。已经有ipv6地址了。。也可以ping6 ipv6.google.com

C:\Documents and Settings\Administrator>ping6 ipv6.google.com

Pinging ipv6.l.google.com [2404:6800:8005::69]
from 2001:da8:4004:125:d5a1:9e05:45e1:c67e with 32 bytes of data:


剩下的。。如何确认?谢谢。。。
CoX
2011-07-14 18:19:44 +08:00
@kojp 不是能ping6就是支持,你用浏览器直接访问 ipv6.google.com 看能访问不?能访问才说明你有ipv6的地址
kojp
2011-07-15 09:10:51 +08:00
可以正常访问。。。。

$_SERVER['REMOTE_ADDR']可是这个函数,真获取不到IPV6的地址呀。。。
而且 我的要求是,同时获取IPV6和IPV4。。。。PUZZLED~~~~~~TAT
CoX
2011-07-15 10:33:12 +08:00
@kojp 我测试了一下,真的可以,呵呵~~

_SERVER["REMOTE_ADDR"] 2406:a000:f0ff:fffe::3ff7
_SERVER["REMOTE_PORT"] 59952
_SERVER["SERVER_ADDR"] 2406:a000:f0ff:fffe::3ff3
_SERVER["SERVER_PORT"] 80
_SERVER["SERVER_NAME"] localhost
_SERVER["REDIRECT_STATUS"] 200
_SERVER["HTTP_HOST"] [2406:a000:f0ff:fffe::3ff3]

应该不能同时获取到ipv6和ipv4的,我理解是服务端绑定ipv4和ipv6的话,客户端同时支持ipv4和ipv6,只能显示一个ipv6(猜想,未测试),否则客户端支持哪个,就显示哪个。
kojp
2011-07-15 11:36:23 +08:00
@Cox
不明白。。。你这不是两个ADDR都是IPv6的地址吗?没有IPv4呀?
另:iis6 也好。。Apache也好。。我还是没能成功获取ipv6地址~~~郁闷中!!!
kojp
2011-07-15 11:37:44 +08:00
@Cox
服务端绑定ipv4和ipv6的话-----------如何绑定?
“Apache需要一个补丁包。。。IIS貌似不需要任何设置只需要安装了ipv6 install 协议就可以呀。。。。”------------反正我都测试失败!!
CoX
2011-07-15 12:28:05 +08:00
我用的nginx,ferdora 8环境。
nginx 相关配置:

listen 192.168.1.101:80;#IPv4

listen [2406:a000:f0ff:fffe::3ff3]:80;#IPv6

server_name localhost;# 域名

应该不能同时获取到ipv4和ipv6地址
kojp
2011-07-20 17:50:39 +08:00
@cox

方便留个邮箱不?
CoX
2011-07-21 13:14:28 +08:00
@kojp info@53520.com
kojp
2011-07-22 10:01:31 +08:00
@cox 已经搞定。。哈哈。。谢谢。邮箱记下了。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/15745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX