php基于curl实现随机ip地址抓取内容的方法


Posted in PHP onOctober 11, 2016

本文实例讲述了php基于curl实现随机ip地址抓取内容的方法。分享给大家供大家参考,具体如下:

使用php curl 我们可以模仿用户行为,既可以设置我们访问的ip及浏览器信息还可以设置post方式。

curl是一个特别牛逼的东西!~ 居然还可以生成随机的ip来访问,甚至可以让服务器分辨不出真实ip。这个很牛!有人说这个是不算bug的bug。不过有这个功能也给我们带来了很大的方便。

php基于curl实现随机ip访问:

<?php
function curl($url,$ifpost = 0, $datafields = '', $cookiefile = '', $v = false){
 $ip_long = array(
       array('607649792', '608174079'), //36.56.0.0-36.63.255.255
       array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
       array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
       array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
       array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
       array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
       array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
       array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
       array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
       array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
   );
   $rand_key = mt_rand(0, 9);
   $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
$header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",'CLIENT-IP:'.$ip,'X-FORWARDED-FOR:'.$ip);
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER, $v);
 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
 $ifpost && curl_setopt($ch, CURLOPT_POST, $ifpost);
 $ifpost && curl_setopt($ch, CURLOPT_POSTFIELDS, $datafields);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 $cookiefile && curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
 $cookiefile && curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
 curl_setopt($ch,CURLOPT_TIMEOUT,30); //允许执行的最长秒数
 $ok = curl_exec($ch);
 curl_close($ch);
 unset($ch);
 return $ok;
}
 print_r(curl("URL"));
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
动易数据转成dedecms的php程序
Apr 07 PHP
PHP define函数的使用说明
Aug 27 PHP
php 中文字符串首字母的获取函数分享
Nov 04 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
php将html转为图片的实现方法
May 19 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
解决PhpStorm64不能启动的问题
Jun 20 PHP
php 获取文件行数的方法总结
Oct 11 #PHP
PHP中文字符串截断无乱码解决方法
Oct 10 #PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 #PHP
php表单加入Token防止重复提交的方法分析
Oct 10 #PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 #PHP
php中让人头疼的浮点数运算分析
Oct 10 #PHP
Laravel实现自定义错误输出内容的方法
Oct 10 #PHP
You might like
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
微信支付的开发流程详解
2016/09/13 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
学习YUI.Ext基础第一天
2007/03/10 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python爬虫---requests库的用法详解
2020/09/28 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
高中生学习生活的自我评价
2013/10/09 职场文书
员工辞职信怎么写
2015/02/27 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
Python if else条件语句形式详解
2022/03/24 Python
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫