💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ mahdi mortezaee
تغییر ip در درخواست‌های curl
جامعه پی اچ پی ایجاد شده در ۲۸ آبان ۱۳۹۹

آیا امکان تغییر ip هنگام ارسال درخواست‌های curl وجود داره ؟

در کد زیر به لینک یک درخواست post زدم و سعی کردم ip و نوع مرورگر کاربر رو در هر درخواست به صورت رندوم تغییر بدم و در سمت سرور ip کابر رو برمیگردونم ... اما هیچ تغییری در مشخصات نشان داده نمیشه !!!!

$url = "http://yaracode.com/sample/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
Curl_setopt( $ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ip=rand(0,255).'.'.rand(0,255).'.'.rand(0,255).'.'.rand(0,255);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/".rand(3,5).".".rand(0,3)." (Windows NT ".rand(3,5).".".rand(0,2)."; rv:2.0.1) Gecko/20100101 Firefox/".rand(3,5).".0.1");
$html = curl_exec($ch);
curl_close($ch);
echo $html;
// سرور مقادیر زیر رو برمیگردونه
// $_SERVER['SERVER_ADDR'] و $_SERVER['REMOTE_ADDR']

 

سلام و احترام

این روش همیشه جواب نمیده و نمیشه گفت که قطعا این IP تغییر میکنه یا ن.

کد سمت سرور برای ایجاد آی وی fake

$headers['CLIENT-IP'] = '202.103.229.40';
$headers['X-FORWARDED-FOR'] = '202.103.229.40';
$headerArr = array();
Foreach( $headers as $n => $v ) {
$headerArr[] = $n .':' . $v;
}
Ob_start();
$ch = curl_init();
Curl_setopt ($ch, CURLOPT_URL, "http://localhost/curl/server.php");
Curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); //Structure IP
Curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ "); //Structure
Curl_setopt( $ch, CURLOPT_HEADER, 1);
Curl_exec($ch);
Curl_close ($ch);
$out = ob_get_contents();
Ob_clean();
Echo $out;

کد سمت client

Function GetIP(){
If(!emptyempty($_SERVER["HTTP_CLIENT_IP"]))
$cip = $_SERVER["HTTP_CLIENT_IP"];
Else if(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
Else if(!emptyempty($_SERVER["REMOTE_ADDR"]))
$cip = $_SERVER["REMOTE_ADDR"];
Else
$cip = "Unable to get!";
Return $cip;
}
echo "
Access IP: ". GetIP (). "
"; echo "
Access routing: ". $_server[" Http_referer "];

اگه سوالی بود حتما مطرح کنید بنده در خدمتم، موفق باشید.

امیر صالحی ۲۸ آبان ۱۳۹۹، ۲۰:۲۰