iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中怎么获取客户端IP
  • 587
分享到

PHP中怎么获取客户端IP

2023-06-17 19:06:43 587人浏览 八月长安
摘要

PHP中怎么获取客户端IP,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、没有使用代理服务器的PHP获取客户端IP情况:REMOTE_ADDR = 客户端IPHttp_X

PHP中怎么获取客户端IP,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、没有使用代理服务器的PHP获取客户端IP情况:

REMOTE_ADDR = 客户端IP
Http_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

REMOTE_ADDR = ***一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)
这类代理服务器还是将客户端真实的IP发送给了访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的PHP获取客户端IP情况:Anonymous Proxies

REMOTE_ADDR = ***一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)
这种情况下隐藏了客户端的真实IP,但是向访问对象透露了客户端是使用代理服务器访问它们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)
这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它。

五、使用高匿名代理服务器的PHP获取客户端IP情况:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 没数值或不显示

无论是REMOTE_ADDR还是HTTP_FORWARDED_FOR,这些头消息未必能够取得到,因为不同的浏览器不同的网络设备可能发送不同的IP头消息。因此php使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值。

因此,使用PHP获取客户端IP的代码可以如下:

  1. function getip() {  

  2. $unknown = 'unknown';  

  3. if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) 
    && $_SERVER['HTTP_X_FORWARDED_FOR'] 
    && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], 
    $unknown) ) {  

  4. $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  

  5. } elseif ( isset($_SERVER['REMOTE_ADDR']) 
    && $_SERVER['REMOTE_ADDR'] && 
    strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {  

  6. $ip = $_SERVER['REMOTE_ADDR'];  

  7. }  

  8.  

  9. if (false !== strpos($ip, ','))  

  10. $ip = reset(explode(',', $ip));  

  11.  return $ip;  

PHP获取客户端IP时另外一点需注意,使用函数getenv(’HTTP_X_FORWARDED_FOR’)或getenv(’REMOTE_ADDR’) 也可以如上代码一样取得同样的效果。但getenv()不支持在IIS的isapi方式下运行的PHP。

关于PHP中怎么获取客户端IP问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网PHP编程频道了解更多相关知识。

--结束END--

本文标题: PHP中怎么获取客户端IP

本文链接: https://www.lsjlt.com/news/292179.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP中怎么获取客户端IP
    PHP中怎么获取客户端IP,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、没有使用代理服务器的PHP获取客户端IP情况:REMOTE_ADDR = 客户端IPHTTP_X...
    99+
    2023-06-17
  • Java中怎么获取客户端真实IP地址
    本篇文章给大家分享的是有关Java中怎么获取客户端真实IP地址,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在JSP里,获取客户端的IP地址的方法是:request.getRe...
    99+
    2023-06-17
  • Java中如何获取客户端真实IP
    今天就跟大家聊聊有关Java中如何获取客户端真实IP,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。nginx配置首先,一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信...
    99+
    2023-06-02
  • java怎么实现获取客户端ip地址
    这篇“java怎么实现获取客户端ip地址”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎么实现获取客户端ip地址”文...
    99+
    2023-06-29
  • PHP获取客户端及服务器端IP的封装类
    以下是一个封装了获取客户端和服务器端IP的PHP类的示例:```phpclass IPHelper {public static f...
    99+
    2023-08-29
    PHP
  • nginx如何获取真实客户端ip
    nginx作为反向代理服务器,即代理我们的服务端,下面介绍下如何配置nginx获取真实的客户端ip 配置nginx.con server { listen 80; server_name l...
    99+
    2023-10-20
    nginx tcp/ip java
  • 如何使用 Go 获取客户端 DNS IP
    学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《如何使用 Go 获取客户端 DNS IP》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一...
    99+
    2024-04-04
  • Nginx代理后获取客户端真实IP地址
    1、场景 在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。 2、使用 通常情况下我们可以使用以下方式来获取IP地址 request.getRemoteAddr() 但是当我们使用Nginx反...
    99+
    2023-09-06
    java获取用户真实IP地址 nginx获取用户真实IP地址
  • php获取客户端ip地址及ip所在国家、省份、城市、县区
    摘要 获取客户端ip地址,然后使用这个ip地址获取所在的国家、省份、城市,可以在网站中实现IP属地,发布地等功能。 本文的获取IP地址信息均采自网络上免费的IP查询网站,通过其API或者网页HTML解...
    99+
    2023-10-24
    php ip
  • 从客户端获取 TLS 信息
    php小编百草将为您介绍如何从客户端获取TLS信息。在网站开发过程中,获取客户端的TLS信息对于实现一些安全性相关的功能非常重要。TLS是一种加密协议,用于保护网络通信的安全。通过获取...
    99+
    2024-02-09
  • 在Java项目中使用Request怎么实现获取客户端的IP地址
    今天就跟大家聊聊有关在Java项目中使用Request怎么实现获取客户端的IP地址,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在JSP里,获取客户端的IP地址的方法是:reques...
    99+
    2023-05-31
    request java ip地址
  • 客户端的IP地址与MAC地址怎么利用Java进行获取
    这篇文章将为大家详细讲解有关客户端的IP地址与MAC地址怎么利用Java进行获取,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.获取客户端IP地址public String getIp(H...
    99+
    2023-05-31
    java ip地址 mac地址
  • 基于nginx获取代理服务ip以及客户端真实ip详解
    目录一、问题背景二、proxy_set_header 语法三、X-Real-IP四、X-Forwarded-For总结 一、问题背景 在实际应用中,我们可能需要获取用户的i...
    99+
    2024-04-02
  • PHP取得 MySQL 客户端信息
    ...
    99+
    2024-04-02
  • PHP中怎么获取中国IP段
    PHP中怎么获取中国IP段,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。新建一个php文件叫cnip.php,PHP获取中国IP段具体代码示例:< php ...
    99+
    2023-06-17
  • Nginx反向代理后无法获取客户端真实IP地址
    目录1、原始配置文件如下2、配置转发后当我们使用 Nginx 代理转发服务后,会发现我们无法获取客户端的真实IP地址,从而无法获取客户端的地理位置等信息。 1、原始配置文件如下 wo...
    99+
    2023-03-06
    Nginx反向代理获取IP地址 Nginx代理IP地址
  • java如何实现获取客户端ip地址的示例代码
    目录一、前言二、摘要  三、java实现获取客户端ip 一、前言 环境:jdk1.8 + idea2019.3 + Windows10 二、摘要&nbs...
    99+
    2024-04-02
  • Nginx反向代理后无法获取客户端真实IP地址怎么解决
    这篇文章主要介绍“Nginx反向代理后无法获取客户端真实IP地址怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx反向代理后无法获取客户端真实IP地址怎么解决”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • 项目中Nginx多级代理是如何获取客户端的真实IP地址
    目录多级代理中获取客户端真实IP日志的格式获取客户端真实IP总结:多级代理中获取客户端真实IP 日志的格式 nginx中常用日志格式配置如下: log_format main '...
    99+
    2024-04-02
  • PHP获取当前用户的真实IP
    在 PHP 中可通过 $_SERVER 全局变量获取客户端IP,常用的有以下两个变量: $_SERVER['REMOTE_ADDR'] :浏览当前页面的用户的 IP 地址$_SERVER['HTTP_...
    99+
    2023-09-07
    php tcp/ip 网络
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作