客户端的ip变量:

$_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP

$_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造

$_SERVER['HTTP_X_FORWARD_FOR'] :用户在哪个ip上使用的id,可能存在,也可能伪造

服务端的ip变量:

$_SERVER['SERVER_NAME'] :需要使用函数gethostname()来获得,这个无论是服务器端还是客户端都能正常显示。

$_SERVER['SERVER_ADDR']:服务器端的ip地址,在服务器端测试ip地址,在客户端测试正常

getnev 获得系统的环境变量:

例子:

<?php
class getIp(){
function ClientIp(){
$cIP= getenv($_SERVER['REMOTE_ADDR']);
$cIP1 = getenv($_SERVER['HTTP_X_FORWORD_FOR']);
$cIP2 = getenv($_SERVER['HTTP_CLIENT_IP']);
$cIP1?$cIP= $cIP1?null;
$cIP2?$cIP = $cIP2?null;
return $cIP;
}
function serverIP(){
return gethostbyname($_SERVER['SERVER_NAME']);
}
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP(); ?>

  

PHP获取客户端和服务器端IP(转)的更多相关文章

  1. PHP获取客户端和服务器端IP

    客户端的ip变量: $_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP $_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造 $_SE ...

  2. ASP.NET获取客户端、服务器端的信息

    ASP.NET获取客户端.服务器端基础信息 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名: ...

  3. 通过HttpservletRequest对象获取客户端的真实IP地址

    这篇文章主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache.Squid.nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下 在JSP里 ...

  4. 通过Request获取客户端的真实IP

    我们在做项目的时候经常需要获取客户端的真实ip去进行判断,为此搜索了相关文章,以下这个讲解的比较明白,直接拿来 https://blog.csdn.net/yin_jw/article/details ...

  5. 获取客户端用户真实ip方法整理(jekyll迁移)

    layout: post title: 获取客户端用户真实ip方法整理 date: 2019-08-22 author: xiepl1997 tags: springboot 由请求获取客户端ip地址 ...

  6. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

  7. 获取客户端的请求IP地址

    获取客户端的请求IP地址 package com.microClass.util; import javax.servlet.http.HttpServletRequest; import java. ...

  8. java代码获取客户端的真实ip

    java代码获取客户端的真实ip protected String getIpAddr(HttpServletRequest request) { String ip = request.getHea ...

  9. 在容器服务中获取客户端真实源 IP

    适用范围:腾讯云容器服务(Tencent Kubernetes Engine ,TKE), 以下简称 TKE. 为什么需要获取客户端真实源 IP? 当需要能感知到服务请求来源去满足一些业务需求时,就需 ...

随机推荐

  1. JSP中的“小饼干”Cookie,用来存储数组的方式(下方已String类型的数组为例:)

    1.Cookie常用方法中,存储数据的方式: Cookie cookie = new Cookie("key","Value"); response.addCo ...

  2. Running Solr in Docker

    Docker现在越来越火,所有的应用程序都想Docker一下,但是并没有听说在Docker上运行Solr.在没有Docker之前要想使用Solr需要在宿主机安装JDK,安装Tomcat,下载Solr程 ...

  3. spring 多线程 写入数据库 和 写入 xml文件

    最近工作中遇到一个需求 多线程先爬取页面 然后将爬取的结果持久化到数据库中 ,一些大文本的内容需要持久化到 xml文件中; 下面是运行后的结果: xml 文件写入结果: 数据库写入结果: 再来张项目结 ...

  4. RHM-M10汽车吊力矩限制器/载荷指示器

    一 产品特点 1.     采用7.0寸工业65K色TFT LCD真彩屏,亮度250nit,分辨率800×480: 2.     传感器采用进口机芯,过载能力强: 3.     采用油压取力和大臂弯曲 ...

  5. Angular02 通过angular-cli来搭建web前端项目

    利用angular-cli的常见命令: npm i --save 包名   ->  软件依赖    npm i --save-dev 包名     ->  开发依赖    ng new 项 ...

  6. 在HTML页面中获取当前项目根路径的方法

    在HTML页面获取项目根路径的方法: function getRootPath(){ var curPageUrl = window.document.location.href; var rootP ...

  7. HDU--2021

    发工资咯:) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  8. c语言基础学习03

    =============================================================================涉及到的知识点有:编码风格.c语言的数据类型. ...

  9. FineReport父子格实现动态参数注入

    "深入学习FineReport后发现其功能及其强大,之前使用存储过程实现的报表完全可以使用FineReport本身的功能实现. 当你需要的表名,查询条件等均未知的时候,使用"动态参 ...

  10. 二 @ResponseBody用法

    @ResponseBody底层是通过response.getwriter()方法将数据写回前 台 @ResponseBody @RequestMapping (value="/queryLi ...