Home >php教程 >php手册 >PHP怎么CURL伪造IP和来源实现程序

PHP怎么CURL伪造IP和来源实现程序

WBOY
WBOYOriginal
2016-05-25 16:43:351055browse

伪造IP来源这个东西在对很多朋友都有用,有的朋友喜欢利用php curl来伪造IP来源,让自己觉得很多IP了,下面我们以伪造IP来源实例来介绍php中curl的用法.

curl默认是未被启用的,启用方法.

启用 cURL 设置:如果你是在Windows平台下,那么非常简单,你需要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了,如下所示:

extension=php_curl.dll 

如果你是在Linux下面,那么,你需要重新编译你的PHP了,编辑时,你需要打开编译参数——在configure命令上加上"-with-curl" 参数.

简单测试实例,代码如下:

<?php  
// 初始化一个 cURL 对象  
$curl = curl_init();   
// 设置你需要抓取的URL  
curl_setopt($curl, CURLOPT_URL, &#39;http://coolshell.cn&#39;);  
// 设置header  
curl_setopt($curl, CURLOPT_HEADER, 1);  
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
// 运行cURL,请求网页  
$data = curl_exec($curl);  
// 关闭URL请求  
curl_close($curl);  
// 显示获得的数据  
var_dump($data); 
?>

模仿post数据,代码如下:

<?php  
    $phoneNumber = &#39;13912345678&#39;;  
    $message = &#39;This message was generated by curl and php&#39;;  
    $curlPost = &#39;pNUMBER=&#39;  . urlencode($phoneNumber) . &#39;&MESSAGE=&#39; . urlencode($message) . &#39;&SUBMIT=Send&#39;;  
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, &#39;http://www.example.com/sendSMS.php&#39;);  
    curl_setopt($ch, CURLOPT_HEADER, 1);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_POST, 1);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);  
    $data = curl_exec();  
    curl_close($ch);  
?>

现在进入正题,CURL伪造IP和来源.

1.php实例代码如下:

<?php
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(&#39;X-FORWARDED-FOR:8.8.8.8&#39;, &#39;CLIENT-IP:8.8.8.8&#39;));//IP 
curl_setopt($ch, CURLOPT_REFERER, "http://www.phprm.com/ "); //来路 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$out = curl_exec($ch); 
curl_close($ch);
?>

2.php实例代码如下:

<?php
function getClientIp() { 
if (!emptyempty($_SERVER["HTTP_CLIENT_IP"])) 
    $ip = $_SERVER["HTTP_CLIENT_IP"]; 
else if (!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])) 
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
else if (!emptyempty($_SERVER["REMOTE_ADDR"])) 
    $ip = $_SERVER["REMOTE_ADDR"]; 
else 
    $ip = "err"; 
return $ip; 
} 
echo "IP: " . getClientIp() . ""; 
echo "referer: " . $_SERVER["HTTP_REFERER"];
?>

用1.php 请求 2.php,输出结果.

关于SSL也就是HTTPS协议,你只需要把CURLOPT_URL连接中的http://变成https://就可以了,当然,还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点.

关于Cookie,你需要了解下面三个参数:

CURLOPT_COOKIE,在当面的会话中设置一个cookie 

CURLOPT_COOKIEJAR,当会话结束的时候保存一个Cookie 

CURLOPT_COOKIEFILE,Cookie的文件


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn