如何取得用户的真实IP

如何取得用户的真实IP

PHP代码:--------------------------------------------------------------------------------

<?
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
  return getenv("HTTP_CLIENT_IP");
}
else {
  return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
  return getenv("HTTP_X_FORWARDED_FOR");
}
else {
  return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
  return getenv("REMOTE_ADDR");
}
else {
  return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
  return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
  return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
  return $ip3;
}   
else {
return "none";
}
}

Echo ip();
?>

时间: 2024-10-22 01:47:46

如何取得用户的真实IP的相关文章

PHP获取用户客户端真实IP的解决方案_php实例

获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多. function getIp(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = gete

php 获得用户的真实IP地址

 代码如下 复制代码 /**  * 获得用户的真实IP地址  *  * @return  string  */ function real_ip(){     static $realip = NULL;       if ($realip !== NULL){         return $realip;     }       if (isset($_SERVER)){         if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){       

PHP获取用户客户端真实IP的解决方案

获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多. function getIp(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = gete

获取用户的真实ip

常见的坑有两个:   一.获取的是内网的ip地址.在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上.结果php获取的是nginx代理服务器的ip,表现为一个内网的地址.php获取REMOTE_ADDR就是这样一个情况(内网地址). 二.获取的是攻击者伪造的ip地址.攻击者可以随便伪造一个头部信息,随便填写一个ip放到头部发过来,php获取到HTTP_CLIENT_IP就是这样一个情况.伪造的ip,导致我们数据库存储是假的ip,无从真实去判断攻击者的来源.比如批量注册帐号

ASP中得到用户的真实IP地址

ip地址 这个是以前供职于一家电子商务网站时,由于网站的销售的都是虚拟的东西,比如说游戏充值卡 呀什么的,支持在线支付.久而久之,就免不了有很多人想要来打网站的主意,一些无聊者老是用代理上网来攻击网站,这样子就算是我们知道被人攻击了也拿对方没办法,后来发现ASP中的Request.ServerVariables("HTTP_X_FORWARDED_FOR")可以得到用户的代理IP.如果用户用了代理,那么这个值就不会为空.反之.呵呵 那么,我们就可以在网页加载时检测用户的代理IP是不是为

【整理】获取用户真实 ip 地址的 nginx 相关配置

nginx 为实现反向代理的需求增加了一个 ngx_http_proxy_module 模块.其中 proxy_set_header 指令就是该模块需要读取的配置.        HTTP header 中的 Host 含义为所请求的目的主机名.当 nginx 作为反向代理使用,而后端真实 web 服务器设置有类似 防盗链功能 ,或者根据 HTTP header 中的 Host 字段来进行 路由 或 过滤 功能的话,若作为反向代理的 nginx 不重写请求头中的 Host 字段,将会导致请求失败

Nginx阻止用户代理及nginx获取用户真实IP地址

Nginx阻止用户代理 有些时候,需要阻止某些用户代理访问网站,比如ab,wget,curl等等,这就需要使用到$http_user_agent变量. 修改nginx.conf if ($http_user_agent ~* (Wget|ab) ) {    return 403; }   if ($http_user_agent ~* LWP::Simple|BBBike|wget) {             return 403; } 重启nginx # /usr/local/nginx-

阿里云场景下获取用户真实 IP

前言 获取用户的真实 IP,对于安全业务来说非常重要.阿里云场景下一个Http 请求一般为: 用户IP --> Ddos 高防 IP ->SLB IP 背景 对于WEB服务器来说,主要是通过两种方式获取 IP 与服务器建立TCP连接的地址 Remote Address 通过 Http Header 的 X-Forwarded-For 字段 对应的 PHP 变量如下 $_SERVER['REMOTE_ADDR'] // 与服务建立TCP连接的IP $_SERVER['HTTP_X_FORWARD

Nginx禁止用户真实IP访问的方法配置

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求.   而对于套了一层 CDN 或代理的网站,这些方法可能就失效了.尤其是个人网站,可能就一台VPS,然后套一个免费的CDN就行走在互联网了.并不是每个CDN都能精准的拦截各种恶意请求的,更闹心的是很多CDN还不支持用户在CDN上添加BAN规则,比如腾讯云CDN...   因此,就有了本文的