对于THinkPHP获取客户端IP与IP地址查询的方法感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍thinkphpin查询,并为您提供关于Java,Jsp获取客户端IP地址、jsp获取客户端
对于THinkPHP获取客户端IP与IP地址查询的方法感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍thinkphp in查询,并为您提供关于Java,Jsp获取客户端IP地址、jsp获取客户端IP地址的方法、PHP 获取客户端ip地址、php 获取客户端IP地址的简单示例的有用信息。
本文目录一览:- THinkPHP获取客户端IP与IP地址查询的方法(thinkphp in查询)
- Java,Jsp获取客户端IP地址
- jsp获取客户端IP地址的方法
- PHP 获取客户端ip地址
- php 获取客户端IP地址的简单示例
THinkPHP获取客户端IP与IP地址查询的方法(thinkphp in查询)
本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下:
TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。
查询IP地址所在国家与地区的类文件是IpLocation.class.PHP,位于ThinkPHP\Lib\ORG\Net目录下。类名是IpLocation,方法是
省略时查询客户端IP所在地址。返回的是一个数组。没有查到的话返回值为空;查到的话,数组有值为:
查询客户端IP及其对应地区的具体应用过程就是:
要是想查询特定IP或域名所在地区,过程是:
要是只要查询客户端IP地址,可以直接用系统函数,如:
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
Java,Jsp获取客户端IP地址
request.getRemoteAddr(),这种方法在大部分情况下都是有效的,但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.
如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP.
经过代理以后,由于在客户端和服务器之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端.
但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息,用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址.
当我们访问index.jsp时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问index.jsp,代理服务器再将访问到的结果返回给我们的浏览器.
因为是代理服务器去访问index.jsp,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址.
获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
获得客户端真实IP地址的方法二:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串.
如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用户真实IP为:192.168.1.110
jsp获取客户端IP地址的方法
本文实例讲述了jsp获取客户端IP地址的方法。分享给大家供大家参考,具体如下:
public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
希望本文所述对大家JSP程序设计有所帮助。
- JSP如何获取客户端真实IP地址
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- js获取客户端网卡的IP地址、MAC地址
- 获取客户端网卡MAC地址和IP地址实现JS代码
- js针对ip地址、子网掩码、网关的逻辑性判断
- javascript实现验证IP地址等相关信息代码
- javascript使用正则表达式检测IP地址
- nodejs获取本机内网和外网ip地址的实现代码
- JS简单获取客户端IP地址的方法【调用搜狐接口】
PHP 获取客户端ip地址
https://www.cnblogs.com/rendd/p/6183094.html
一、如果没有使用代理服务器,
REMOTE_ADDR
= 客户端IP HTTP_X_FORWARDED_FOR
= 没数值或不显示
$ip = $_SERVER[''REMOTE_ADDR''];
二、使用透明代理,
REMOTE_ADDR
= 最后一个代理服务器 IP HTTP_X_FORWARDED_FOR
= 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)
这类代理还会将客户真实ip发送到请求对象,无法隐藏真实ip。
$ip = $_SERVER[''HTTP_X_FORWARDED_FOR''];
三、使用普通匿名代理服务器,
REMOTE_ADDR
= 最后一个代理服务器 IP HTTP_X_FORWARDED_FOR
= 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)
这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的。
四、使用欺骗性代理服务器,
REMOTE_ADDR
= 代理服务器 IP HTTP_X_FORWARDED_FOR
= 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)
服务器可以识别到时通过代理服务器访问的,但发送给目标服务器的是虚假ip。
五、使用高匿名代理,
REMOTE_ADDR
= 代理服务器 IP HTTP_X_FORWARDED_FOR
= 没数值或不显示
使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用$_SERVER["REMOTE_ADDR"]
、$_SERVER["HTTP_X_FORWARDED_FOR"]
获取的值可能是空值也可能是“unknown
”值。
PHP获取ip代码如下:
public function ip() {
//strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。 if(getenv(''HTTP_CLIENT_IP'') && strcasecmp(getenv(''HTTP_CLIENT_IP''), ''unknown'')) { $ip = getenv(''HTTP_CLIENT_IP''); } elseif(getenv(''HTTP_X_FORWARDED_FOR'') && strcasecmp(getenv(''HTTP_X_FORWARDED_FOR''), ''unknown'')) { $ip = getenv(''HTTP_X_FORWARDED_FOR''); } elseif(getenv(''REMOTE_ADDR'') && strcasecmp(getenv(''REMOTE_ADDR''), ''unknown'')) { $ip = getenv(''REMOTE_ADDR''); } elseif(isset($_SERVER[''REMOTE_ADDR'']) && $_SERVER[''REMOTE_ADDR''] && strcasecmp($_SERVER[''REMOTE_ADDR''], ''unknown'')) { $ip = $_SERVER[''REMOTE_ADDR'']; } $res = preg_match ( ''/[\d\.]{7,15}/'', $ip, $matches ) ? $matches [0] : ''''; echo $res; //dump(phpinfo());//所有PHP配置信息 }
php 获取客户端IP地址的简单示例
对PHP开启curl感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!PHP开启curl
开启PHP curl函数库的步骤
1).去掉windows/PHP.ini 文件里;extension=php_curl.dll前面的; /*用 echo PHPinfo();查看PHP.ini的路径*/
2).把PHP5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
配置PHP支持curl
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道( proxy tunneling),甚至它还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
配置方法:
1、拷贝PHP目录中的libeay32.dll 和 ssleay32.dll 两个文件到 system32 目录。
2、修改PHP.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。
---------------------------
PHP下扩展php_curl.dll的安装
对PHP 获取客户端IP地址感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!
/**
* PHP 获取客户端IP地址
*
* @param
* @arrange 512-笔记网: 512Pic.com
**/
function GetIP()
{
if (@$_SERVER[HTTP_X_FORWARDED_FOR])
$ip = $_SERVER[HTTP_X_FORWARDED_FOR];
else if (@$_SERVER[HTTP_CLIENT_IP])
$ip = $_SERVER[HTTP_CLIENT_IP];
else if (@$_SERVER[REMOTE_ADDR])
$ip = $_SERVER[REMOTE_ADDR];
else if (@getenv(HTTP_X_FORWARDED_FOR))
$ip = getenv(HTTP_X_FORWARDED_FOR);
else if (@getenv(HTTP_CLIENT_IP))
$ip = getenv(HTTP_CLIENT_IP);
else if (@getenv(REMOTE_ADDR))
$ip = getenv(REMOTE_ADDR);
else
$ip = UnkNown;
return $ip;
}
/*** 来自小编 jb51.cc(jb51.cc) ***/
---------------------------已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.
在PHP.ini中找到有extension=php_curl.dll,去掉前面的注释.
设置extension_dir=c:PHPext,刷新PHP页面时报错,说找不到模块php_curl.dll.
拷贝php_curl.dll 到windowssystem32,还是同样的错.
在网上找了一下,需要将:
libeay32.dll,ssleay32.dll,PHP5ts.dll,php_curl.dll
都拷贝到system32目录下,重启IIS即可.
关于THinkPHP获取客户端IP与IP地址查询的方法和thinkphp in查询的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Java,Jsp获取客户端IP地址、jsp获取客户端IP地址的方法、PHP 获取客户端ip地址、php 获取客户端IP地址的简单示例的相关知识,请在本站寻找。
本文标签: