php如何获取请求接口资源的请求者的IP地址

php如何获取请求接口资源的请求者的IP地址,第1张

/

     获取客户端IP地址

     @param integer $type

     @return mixed

    /

   function getclientip() {

       static $realip = NULL;

        

       if($realip !== NULL){

           return $realip;

       }

       if(isset($_SERVER)){

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

               $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

               / 取X-Forwarded-For中第一个非unknown的有效IP字符串 /

               foreach ($arr AS $ip){

                   $ip = trim($ip);

                   if ($ip != 'unknown'){

                       $realip = $ip;

                       break;

                   }

               }

           }elseif(isset($_SERVER['HTTP_CLIENT_IP'])){//HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是"超级匿名代理",则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。

               $realip = $_SERVER['HTTP_CLIENT_IP'];

           }else{

               if (isset($_SERVER['REMOTE_ADDR'])){ //正在浏览当前页面用户的 IP 地址

                   $realip = $_SERVER['REMOTE_ADDR'];

               }else{

                   $realip = '0000';

               }

           }

       }else{

           //getenv环境变量的值

           if (getenv('HTTP_X_FORWARDED_FOR')){//但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址

               $realip = getenv('HTTP_X_FORWARDED_FOR');

           }elseif (getenv('HTTP_CLIENT_IP')){ //获取客户端IP

               $realip = getenv('HTTP_CLIENT_IP');

           }else{

               $realip = getenv('REMOTE_ADDR');  //正在浏览当前页面用户的 IP 地址

           }

       }

       preg_match("/[\d\]{7,15}/", $realip, $onlineip);

       $realip = !empty($onlineip[0])  $onlineip[0] : '0000';

       return $realip;

   }

1、国内ADSL是王道,多申请些线路,分布在多个不同的电信区局,能跨省跨市更好,自己写好断线重拨组件,自己写动态IP追踪服务,远程硬件重置(主要针对ADSL猫,防止其宕机),其余的任务分配,数据回收~

2、1IP必须需要,,ADSL。如果有条件,其实可以跟机房多申请外网IP。

2在有外网IP的机器上,部署代理服务器。

3你的程序,使用轮训替换代理服务器来访问想要采集的网站。

3、ADSL + 脚本,监测是否被封,然后不断切换 ip

设置查询频率限制

正统的做法是调用该网站提供的服务接口。

4、

1 user agent 伪装和轮换

2 使用代理 ip 和轮换

3 cookies 的处理,有的网站对登陆用户政策宽松些

友情提示:考虑爬虫给人家网站带来的负担,be a responsible crawler

5、

尽可能的模拟用户行为:

1、UserAgent经常换一换;

2、访问时间间隔设长一点,访问时间设置为随机数;

3、访问页面的顺序也可以随机着来

6、

1 对爬虫抓取进行压力控制;

2 可以考虑使用代理的方式访问目标站点。

-降低抓取频率,时间设置长一些,访问时间采用随机数

-频繁切换UserAgent(模拟浏览器访问)

-多页面数据,随机访问然后抓取数据

-更换用户IP

首先要配置好PHP的网站环境,小鸟云管家可以一键进行配置,如果你是用WIN操作系统的话,建议用IIS+PHP+MYSQL的环境来搭建,然后安装下FTP,并在本地通过FTP把网站程序上传到小鸟云服务器,然后在IIS中发布网站,安装网站即可。不仅是小鸟云,所有的云服务器都可以这样来操作,很多服务商是可以帮你配置环境的,另外IIS发布网站的教程建议你百度一下,会很详细。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » php如何获取请求接口资源的请求者的IP地址

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情