ホームページ >バックエンド開発 >PHPチュートリアル >CULR プロキシ IP の実装は神を待っています。 【緊急】

CULR プロキシ IP の実装は神を待っています。 【緊急】

WBOY
WBOYオリジナル
2016-06-23 14:26:11934ブラウズ

PHP CURL IP プロキシ

Print $_SERVER['REMOTE_ADDR']; 実際の IP を取得します
$_SERVER['HTTP_X_FORWARDED_FOR']; プロキシを使用して Web ページのコンテンツを返す URL にアクセスするように実装します。

$ip = rand(1,255).'.'.rand(1,255).'.'.rand(1,255).'.'.rand(1,255); -FORWARDED-FOR' .':' . $ip;
$ch =curl_init();
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr) );
$re =curl_exec($ch);


これは私が書いたコードです、役に立ちません。
$_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_REフェラー $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_close($ch); //close に戻る
/ /2番目、プロキシを使用します
curl_setopt($ch,CURLOPT_PROXY,"http://www.domain.com");

//3番目、偽の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);

これはどうやって使うのですか? $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);

初心者なので、わかりやすく教えていただけますか?

初心者ですが真っ白ではありません。 。

親愛なるマスターの皆様、建物を建てる前にテストしてください。昨日すでに 1 日試しましたが、Baidu からコピーするのは退屈です。

Print $_SERVER['REMOTE_ADDR']; 実際の IP を取得します
$_SERVER['HTTP_X_FORWARDED_FOR']; プロキシ IP を取得します

ここで見せたいのは、$_SERVER['REMOTE_ADDR'] によって取得された IP を出力することです
その結果、プログラムが http://ip138.com/ にアクセスすると、表示される IP は偽装された IP になります。

これも真っ白に近いです

REMOTE_ADDR は Web サイトにアクセスするマシンの IP です(P だと仮定します)

HTTP_X_FORWARDED_FOR は P によって Web サイトに送信された IP 情報です。送信するマシンの IP を取得するには REMOTE_ADDR を使用しますP へのリクエスト


ローカルのマシンが P の場合、HTTP_X_FORWARDED_FOR は偽造できますが、REMOTE_ADDR は偽造できません
プロキシ P 経由で Web サイトにアクセスする場合、Web サイトは P の REMOTE_ADDR を持つ 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 までご連絡ください。