Php $_SERVER['REMOTE_ADDR'];的可能返回值是什么;?

Php $_SERVER['REMOTE_ADDR'];的可能返回值是什么;?,php,ipv6,ipv4,Php,Ipv6,Ipv4,在编写登录模块时,我想记录IP,作为验证另一端的人仍然是另一端的同一个人的额外措施 我使用$\u SERVER['REMOTE\u ADDR']作为获取远程机器IP地址的多种方法之一。除了IPv4或IPv6地址之外,我还希望返回其他值吗?根据PHP在线文档,只应返回IP地址 “‘远程地址’: 用户查看当前页面的IP地址。“根据PHP在线文档,只应返回IP地址 “‘远程地址’: 用户查看当前页面时使用的IP地址。“检查IP地址确实没有额外的安全性,因为这些地址很容易被欺骗,任何足够精明的人都可能会

在编写登录模块时,我想记录IP,作为验证另一端的人仍然是另一端的同一个人的额外措施


我使用$\u SERVER['REMOTE\u ADDR']作为获取远程机器IP地址的多种方法之一。除了IPv4或IPv6地址之外,我还希望返回其他值吗?

根据PHP在线文档,只应返回IP地址

“‘远程地址’:


用户查看当前页面的IP地址。“

根据PHP在线文档,只应返回IP地址

“‘远程地址’:


用户查看当前页面时使用的IP地址。“

检查IP地址确实没有额外的安全性,因为这些地址很容易被欺骗,任何足够精明的人都可能会以任何方式拦截POST交易

此外,您可能会惹恼合法用户。想一想,一个人可能在一个有几个免费开放的wifi热点的地方。当他们进入你的登录页面时,他们可能连接到一个热点,但当他们登录时,他们的机器可能已经决定另一个路由器是更好的选择,因此他们的IP将改变。信不信由你,这可能会让一些(尽管是极少数)容易沮丧的用户望而却步


老实说,我就是不想麻烦。如果可以,使用SSL通常是避免您所描述的安全问题的最佳方法。祝你的项目好运。

检查IP地址真的没有额外的安全性,因为这些地址很容易被欺骗,任何有足够智慧的人都可能会以任何方式拦截POST事务

此外,您可能会惹恼合法用户。想一想,一个人可能在一个有几个免费开放的wifi热点的地方。当他们进入你的登录页面时,他们可能连接到一个热点,但当他们登录时,他们的机器可能已经决定另一个路由器是更好的选择,因此他们的IP将改变。信不信由你,这可能会让一些(尽管是极少数)容易沮丧的用户望而却步


老实说,我就是不想麻烦。如果可以,使用SSL通常是避免您所描述的安全问题的最佳方法。祝您的项目好运。

该值可以是IPv4或IPv6地址。虽然您可能只获得规范值,但请注意,IP地址可以用几种方式写入。192.0.2.1与192.000.002.001、2001:db8::1与2001:0db0:0000:0000:0000:0000:0001等相同。如果Web服务器在IPv6套接字上接受IPv4连接,则IPv4地址甚至可以用IPv6表示法写入,如::ffff:192.0.2.1或::ffff:c000:0201。我在Linux系统上经常看到这种情况

只要您保留足够的空间,记录IP地址就不会有问题。实际上,使用IP地址进行访问控制现在变得越来越棘手。由于世界上大部分地区的新IPv4地址已经用完,您将看到ISP必须大规模使用NAT才能将新客户连接到IPv4 internet。这些大规模NAT将使用公共IPv4地址池,供数千名客户使用。一个IP地址可供多个客户使用,一个客户可能最终使用池中的不同地址

在IPv6中,跟踪IP地址还需要考虑其他因素。最初的IPv6自动配置机制基于将MAC地址用作IPv6地址的一部分。由于隐私问题,大多数操作系统现在使用一种随机生成的接口标识符,通常是地址的最后64位用于传出连接,这些位可以/将随着时间的推移而改变。一些操作系统Mac OS X甚至保留有关IPv4或IPv6是否更快的统计信息,我看到客户机有时在IPv4和IPv6之间来回切换

然后,您可以让用户从一个无线热点或办公网络漫游到另一个,从而切换IP地址


因此,我认为根据您想要对数据执行的操作来记录IP地址可能是有意义的,但将其作为访问控制的一部分可能会带来更多麻烦。

该值可以是IPv4或IPv6地址。虽然您可能只获得规范值,但请注意,IP地址可以用几种方式写入。192.0.2.1与192.000.002.001、2001:db8::1与2001:0db0:0000:0000:0000:0000:0001等相同。如果Web服务器在IPv6套接字上接受IPv4连接,则IPv4地址甚至可以用IPv6表示法写入,如::ffff:192.0.2.1或::ffff:c000:0201。我在Linux系统上经常看到这种情况

只要您保留足够的空间,记录IP地址就不会有问题。实际上,使用IP地址进行访问控制越来越困难 这几天越来越难对付了。由于世界上大部分地区的新IPv4地址已经用完,您将看到ISP必须大规模使用NAT才能将新客户连接到IPv4 internet。这些大规模NAT将使用公共IPv4地址池,供数千名客户使用。一个IP地址可供多个客户使用,一个客户可能最终使用池中的不同地址

在IPv6中,跟踪IP地址还需要考虑其他因素。最初的IPv6自动配置机制基于将MAC地址用作IPv6地址的一部分。由于隐私问题,大多数操作系统现在使用一种随机生成的接口标识符,通常是地址的最后64位用于传出连接,这些位可以/将随着时间的推移而改变。一些操作系统Mac OS X甚至保留有关IPv4或IPv6是否更快的统计信息,我看到客户机有时在IPv4和IPv6之间来回切换

然后,您可以让用户从一个无线热点或办公网络漫游到另一个,从而切换IP地址


因此,我认为根据您想要对数据执行的操作来记录IP地址可能是有意义的,但是将它们作为访问控制的一部分可能会带来更多的麻烦。

问题是,我读过并看到过这样的实例:$\u SERVER['REMOTE\u ADDR']返回多个地址。一个快速的谷歌搜索出现了这个链接:问题是我读过并看到过$\u SERVER['REMOTE\u ADDR']返回多个地址的实例。一个快速的谷歌搜索出现了这个链接:嗨,凯尔,谢谢你的评论。当涉及到用户信息和验证正确的凭据时,我只是想做得彻底一些。在设计登录方案时,我想考虑的是wifi热点和其他用户可能因误报而烦恼的区域。非常好:很高兴能为您提供帮助。-1因为,不,您不能轻易地用TCP连接欺骗IP地址。所以,检查地址仍然可以提供一些安全性。嘿,凯尔,谢谢你的评论。当涉及到用户信息和验证正确的凭据时,我只是想做得彻底一些。在设计登录方案时,我想考虑的是wifi热点和其他用户可能因误报而烦恼的区域。非常好:很高兴能为您提供帮助。-1因为,不,您不能轻易地用TCP连接欺骗IP地址。因此,检查地址仍然可以提供一些安全性。