当前位置:  编程技术>php

php获得用户ip地址的比较不错的方法

    来源: 互联网  发布时间:2014-08-26

    本文导语:  REMOTE_ADDR只能获取访问者本地连接中设置的IP,如某大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP...

REMOTE_ADDR只能获取访问者本地连接中设置的IP,如某大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。

下面提供一个函数:

代码如下:



getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。

但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。
代码如下:

else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");

表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。

如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。

这种情况下已经确认客户端没有使用代理服务器,从而通过
代码如下:

else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");

这两行语句获得客户端的IP地址也是真实的IP地址。

    
 
 

您可能感兴趣的文章:

  • php获得数组长度(元素个数)的方法
  • php表单请求获得数据求和示例
  • php获得url参数中含有&值的方法
  • php获得url参数中具有&的值的方法
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php获取本机ip地址 php获取远程IP地址
  • php通过socket_bind()设置IP地址代码示例
  • 地址簿 PHP Address Book
  • php使用socket_bind()函数绑定IP地址
  • PHP获取局域网中计算机名、IP地址与MAC地址
  • php获取访客ip地址原理及提供七段代码供参考
  • Web地址簿 PHP iAddressBook
  • PHP邮箱地址正确性验证示例
  • php 获取网站地址的函数代码
  • PHP实现使用优酷土豆视频地址获取swf播放器分享地址
  • php获取远程客户端真实ip地址
  • PHP根据IP地址限制用户访问
  • php伪静态如何获取地址栏url
  • php查找字符串中http地址
  • 限制ip地址段访问用php如何实现
  • PHP使用CURL获取302跳转后的地址实例
  • php 获取完整url地址实例详解
  • php获取本机ip(远程IP地址)
  • PHP的IP地址查询库 QQWry
  • php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php比较绝对时间的大小示例
  • php代码审计比较有意思的例子
  • php比较两个绝对时间的大小
  • php中float(浮点数)比较的问题
  • php字符串比较函数实例
  • PHP中比较时间大小实例
  • PHP中比较两个字符串找出第一个不同字符位置例子
  • 请高人比较一下asp、php、jsp的优劣及发展前景
  • PHP两种去掉数组重复值的方法比较
  • 散分:比较一下,jsp、asp、perl、php哪个更快?
  • PHP比较static global与GLOBALS用法
  • php的mkdir()函数创建文件夹比较安全的权限设置方法
  • php 字符串压缩方法比较示例
  • php字符串比较与查找方法详解
  • 2个比较经典的PHP加密解密函数分享
  • php中curl、fsocket、file_get_content三个函数的使用比较
  • php日期字符串比较实例
  • php中curl、fsocket、file_get_content函数比较
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • php输入流php://input使用示例(php发送图片流到服务器)
  • PHP去除html标签,php标记及css样式代码参考
  • PHP转换器 HipHop for PHP
  • php获得url参数中含有&值的方法 iis7站长之家
  • PHP 框架 Pop php
  • php安装完成后如何添加mysql扩展
  • PHP的JavaScript框架 PHP.JS
  • PHP的substr() 函数用法
  • php服务器探针显示php服务器信息
  • PHP介绍及学习网站推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3