Heim  >  Artikel  >  Backend-Entwicklung  >  CULR代理IP的实现,坐等神人!【急】

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

WBOY
WBOYOriginal
2016-06-23 14:26:11919Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn