>  기사  >  백엔드 개발  >  CULR代理IP的实现,坐等神人!【急】

CULR代理IP的实现,坐等神人!【急】

WBOY
WBOY원래의
2016-06-23 14:26:11879검색

PHP CURL IP代理

打印$_SERVER['REMOTE_ADDR'];获取到真实IP
$_SERVER['HTTP_X_FORWARDED_FOR'];获取到代理IP

 

实现用代理访问网址返回网页内容

$ip = rand(1,255).'.'.rand(1,255).'.'.rand(1,255).'.'.rand(1,255);
$headerArr[] = 'X-FORWARDED-FOR' .':' . $ip;  
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://ip138.com");
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); 
$re=curl_exec($ch);
var_dump($re);


这是我写的代码,没什么用。
$_SERVER['REMOTE_ADDR'];打印出我真实的IP
$_SERVER['HTTP_X_FORWARDED_FOR'];打印出来的是我虚拟的IP

能让程序返回内容中的IP显示为代理IP即可

回复讨论(解决方案)

        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
        curl_setopt($ch, CURLOPT_PROXY, $proxy);

//第一、伪造来源HTTP_REFERER
$ch = curl_init(); //初始化
curl_setopt($ch, CURLOPT_URL, http://www.example.com/); //你要访问的页面
curl_setopt($ch, CURLOPT_REFERER, http://www.example.com/); //伪造来源HTTP_REFERER
curl_setopt($chtml,CURLOPT_RETURNTRANSFER,1); //是否显示内容
curl_exec($ch); //执行
curl_close($ch); //返回关闭

//第二、用代理
curl_setopt($ch,CURLOPT_PROXY,"http://www.domain.com");

//第三、伪造ip
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));  //构造IP

        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
        curl_setopt($ch, CURLOPT_PROXY, $proxy);

这个怎么用?$proxy是什么意思?给它赋什么值?IP吗?用不用加端口号?
具体要怎么写啊?
define ( 'IS_PROXY', true );
$ip = rand(1,255).'.'.rand(1,255).'.'.rand(1,255).'.'.rand(1,255);
$headerArr[] = 'X-FORWARDED-FOR' .':' . $ip;  
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.liansuo.com/chaxun.php");
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP
$re=curl_exec($ch);
var_dump($re);

本人小白,麻烦大神们给写明白点行吗?

虽然我是小白,但我不是纯白好么。。

各位大神麻烦测试了后再盖楼,我昨天已经试一天了,百度复制过来没意思。

打印$_SERVER['REMOTE_ADDR'];获取到真实IP
$_SERVER['HTTP_X_FORWARDED_FOR'];获取到代理IP 

我要伪装的是打印$_SERVER['REMOTE_ADDR']所获得的IP
效果是程序访问http://ip138.com/时IP显示的是伪装的IP才行。

也接近纯白了

REMOTE_ADDR 是访问网站的那台机器的ip 假设为 P
HTTP_X_FORWARDED_FOR 是 P向网站发出的ip信息,用REMOTE_ADDR获得向 P发出请求的机器的ip

如果你的本机为 P,可以伪造HTTP_X_FORWARDED_FOR,但不能伪造REMOTE_ADDR
如果你是通过代理 P访问网站,则网站收到REMOTE_ADDR为 P的ip,但HTTP_X_FORWARDED_FOR你则无法伪造,因为是 P发出的,不受你控制

$_SERVER['REMOTE_ADDR'] 来源的IP,如果是经代理访问的,就是代理的ip
$_SERVER['HTTP_X_FORWARDED_FOR'] 访问代理的机器的ip

我是想$_SERVER['REMOTE_ADDR']打印出来的IP是我设置的代理的IP,能实现吗?求方法

我是想$_SERVER['REMOTE_ADDR']打印出来的IP是我设置的代理的IP,能实现吗?求方法
见#1 或 #2,设置 CURLOPT_PROXY

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.