php使用CURL伪造IP和来源实例详解
本文实例讲述了php使用CURL伪造IP和来源的方法。分享给大家供大家参考。具体分析如下:
伪造IP来源对于php来说是很简单的一件事情,我们只要利用了php的curl即可实现伪造IP来源的功能,IP地址你可以随便写.
index.php实例代码如下:
$ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://localhost/curl.php"); curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-FORWARDED-FOR:8.8.8.8','CLIENT-IP:8.8.8.8'));//IP curl_setopt($ch,CURLOPT_REFERER,"https://www.nhooo.com/"); //来路 curl_setopt($ch,CURLOPT_HEADER,1); $out=curl_exec($ch); curl_close($ch);
curl.php代码如下:
functiongetClientIp(){ if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])) $ip=$_SERVER["HTTP_CLIENT_IP"]; elseif(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) $ip=$_SERVER["HTTP_X_FORWARDED_FOR"]; elseif(!emptyempty($_SERVER["REMOTE_ADDR"])) $ip=$_SERVER["REMOTE_ADDR"]; else $ip="err"; return$ip; } echo"IP:".getClientIp().""; echo"referer:".$_SERVER["HTTP_REFERER"];
用index.php请求curl.php,输出结果:
IP:8.8.8.8 referer:https://www.nhooo.com
伪造成功,这是不是给采集的朋友提供了很好的换IP的方案,当然防被刷的朋友也要注意了.
补充:
PHP中的CURL函数库(ClientURLLibraryFunction)如下:
curl_close—关闭一个curl会话
curl_copy_handle—拷贝一个curl连接资源的所有内容和参数
curl_errno—返回一个包含当前会话错误信息的数字编号
curl_error—返回一个包含当前会话错误信息的字符串
curl_exec—执行一个curl会话
curl_getinfo—获取一个curl连接资源句柄的信息
curl_init—初始化一个curl会话
curl_multi_add_handle—向curl批处理会话中添加单独的curl句柄资源
curl_multi_close—关闭一个批处理句柄资源
curl_multi_exec—解析一个curl批处理句柄
curl_multi_getcontent—返回获取的输出的文本流
curl_multi_info_read—获取当前解析的curl的相关传输信息
curl_multi_init—初始化一个curl批处理句柄资源
curl_multi_remove_handle—移除curl批处理句柄资源中的某个句柄资源
curl_multi_select—GetallthesocketsassociatedwiththecURLextension,whichcanthenbe"selected"
curl_setopt_array—以数组的形式为一个curl设置会话参数
curl_setopt—为一个curl设置会话参数
curl_version—获取curl相关的版本信息
curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址.
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄.
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄.
希望本文所述对大家的php程序设计有所帮助。