php获取用户真实ip及代理服务的几种类型介绍

摘要:ip 代理根据安全性分类,一共可以分成4种类型:透明代理,匿名代理,混淆代理,高匿代理,从安全程度的排列顺序应该是:高匿 > 混淆 > 匿名 > 透明。下面就来盘点下各种代理服务的属性。

PHP获取客户端真实IP地址

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

  • REMOTE_ADDR:浏览当前页面的用户计算机的 ip 地址
  • HTTP_X_FORWARDED_FOR:浏览当前页面的用户计算机的网关
  • HTTP_CLIENT_IP:客户端的ip

不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

还有一点需要注意的是,如果客户端没有通过代理服务器来访问,那么用 $_SERVER["HTTP_X_FORWARDED_FOR"] 取到的值将是空的,所以一般都是用如下代码加以修改使用:

<?php
  if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
    echo $_SERVER['HTTP_X_FORWARDED_FOR'];
  }elseif($_SERVER['REMOTE_ADDR']!=''){
    echo $_SERVER['REMOTE_ADDR'];
  }else{
    echo $_SERVER['HTTP_CLIENT_IP'];
  }
?>

IP代理服务的几种类型

IP 代理根据协议分类,最常见的就是以下三种:

  • HTTP 代理,主要是代理用户浏览器访问网页;
  • HTTPS 代理,是 HTTP 的安全版,在HTTP 上加入了 SSL 层,端口号为 443;
  • SOCKS5 代理,只是简单地传递数据包,不关心是何种应用协议。
  • ip 代理根据安全性分类,一共可以分成4种类型:透明代理,匿名代理,混淆代理,高匿代理,从安全程度的排列顺序应该是:高匿 > 混淆 > 匿名 > 透明。下面就来盘点下各种代理服务的属性。

    不使用代理

    属性 描述
    REMOTE_ADDR 您的 IP
    HTTP_VIA 没数值或不显示
    HTTP_X_FORWARDED_FOR 没数值或不显示

    透明代理(Transparent Proxies)

    属性 描述
    REMOTE_ADDR 最后一个代理服务器 IP
    HTTP_VIA 代理服务器 IP
    HTTP_X_FORWARDED_FOR 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

    透明代理虽然可以直接“隐藏”你的IP地址,但是还是可以从 HTTP_X_FORWARDED_FOR 来查到你是谁。

    匿名代理(Anonymous Proxies)

    属性 描述
    REMOTE_ADDR 最后一个代理服务器 IP
    HTTP_VIA 代理服务器 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_VIA 代理服务器 IP
    HTTP_X_FORWARDED_FOR 随机的 IP,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

    告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机 IP 代替您的真实 IP 欺骗它。

    高匿代理(High Anonymity Proxies (Elite proxies))

    属性 描述
    REMOTE_ADDR 代理服务器 IP
    HTTP_VIA 没数值或不显示
    HTTP_X_FORWARDED_FOR 没数值或不显示

    可以看出来,高匿代理让别人根本无法发现你是在用代理,所以是最好的选择。

版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.dedenotes.com/html/php-proxies.html
(1)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

防止表单重复提交的 4 种方法

Dedenotes 赞(3)

平时开发的项目中可能会出现下面这些情况:由于用户误操作,多次点击表单提交按钮;由于网速等原因造成页面卡顿,用户重复刷新提交页面;黑客或恶意用户使用 Postman 等工具重复恶意提交表单(攻击网站)。

meta

Dedenotes 赞(3)

meta 是 html 语言 head 区的一个辅助性标签,位于文档的头部,不包含任何内容,标签的属性定义了与文档相关联的名称/值对。meta 标签可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。

HTTP消息结构 HTTP请求报文和响应报文的格式

Dedenotes 赞(3)

HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),所有的 WWW(World Wide Web)文件都必须遵守这个标准。