علی رضا
2 سال پیش توسط علی رضا مطرح شد
3 پاسخ

پروکسی لیست

سلام شب و روز همگی خوش بنده یک تیکه کد به زبان php نیاز دارم که با کمک پروکسی لبست SOCKS5 یک لینک تلگرامی رو باز کنه برای مثال

$filename = filegetcontents('SOCKS5.txt');  
$ex = explode('\\n', $filename);

foreach ($ex as $pro) {  
$url = '<https://t.me/MeltuLogChannel/683>';  
$curl = curlinit();  
curlsetopt($curl, CURLOPTURL, $url);  
curlsetopt($curl, CURLOPTRETURNTRANSFER, true);  
curlsetopt($curl, CURLOPTPROXYTYPE, CURLPROXYSOCKS5HOSTNAME);  
curlsetopt($curl, CURLOPTPROXY, $pro);  
$response = curlexec($curl);  
curlclose($curl);  
echo $response;  
}

ولی پاسخی دریافت نکردم مچکر میشم کسی کمک کنه ممنون.


ثبت پرسش جدید
علی رضا
تخصص : علاقه مند به php
@reza1275 2 سال پیش مطرح شد
0
$post_url = $_GET['url'];
$proxies_file = 'SOCKS5.txt';
$post_url .= '?embed=1';
$proxies = explode("\n", file_get_contents($proxies_file));
$gecko = 1;
$mozilla = 0;
foreach ($proxies as $proxy) {
    $user_agent = 'User-Agent: Mozilla/5.'.$mozilla.'(X11; Linux x86_64; rv:52.0) Gecko/'.$gecko.' Firefox/52.'.$mozilla;
    $mozilla++;
    $gecko++;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['User-Agent: '.$user_agent]);
    curl_setopt($ch, CURLOPT_URL, $post_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
    $result = curl_exec($ch);
    if ($result === false) {
        echo 'bad proxy'.PHP_EOL;
        curl_close($ch);
        continue;
    }

    preg_match('/data-view="(\w+)"/', $result, $matches);
    preg_match('/stel_ssid=(\w+)/', $result, $session);
    $ssid = $session[1];
    curl_setopt($ch, CURLOPT_URL, $post_url.'&view='.$matches[1]);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Requested-With: XMLHttpRequest', 'Cookie: stel_ssid='.$ssid, 'User-Agent: '.$user_agent]);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $response_content = curl_exec($ch);
    if ($result === false) {
        echo 'Bad response'.PHP_EOL;
    } else {
        echo 'OK'.PHP_EOL;
    }
    curl_close($ch);
}

یکم تغییرش دادم ولی باز پروکسی لینک اجرا نکرد حداقل از اون همه پروکسی تازه یکیش باید جواب میداد


محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 2 سال پیش مطرح شد
0

کد شما مشکلاتی دارد که باعث عدم دریافت پاسخ می‌شود. به جای این کد، کد زیر را امتحان کنید:

$socks5_proxy = '127.0.0.1:1080'; // آدرس و پورت پروکسی SOCKS5 شما

$telegram_url = 'https://t.me/MeltuLogChannel/683'; // آدرس تلگرام مورد نظر

$ch = curl_init($telegram_url);
curl_setopt($ch, CURLOPT_PROXY, $socks5_proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

if ($response === false) {
  echo 'خطا در دریافت پاسخ: ' . curl_error($ch);
} else {
  echo $response;
}

curl_close($ch);

در این کد، از تابع curl_init برای ایجاد یک نمونه از CURL استفاده شده است. سپس با استفاده از curl_setopt، تنظیمات Curl برای انتقال اطلاعات از پروکسی SOCKS5 به استفاده کننده اعمال شده است.

سپس با استفاده از curl_exec، درخواست به تلگرام ارسال شده و پاسخ دریافت شده است. برای تأیید دریافت پاسخ، از شرطی استفاده شده است که در صورتی که پاسخ از سمت سرور دریافت نشود، یک خطا به صورت خروجی نمایش داده می‌شود.

با استفاده از این کد، می‌توانید با پروکسی SOCKS5 به لینک تلگرام دلخواه دسترسی پیدا کنید. دقت داشته باشید که پروکسی SOCKS5 تحت عنوان $socks5_proxy و تلگرام تحت عنوان $telegram_url در کد قرار دارند و شما می‌توانید آدرس پروکسی SOCKS5 مورد نظر خود را در کد قرار دهید.


محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 2 سال پیش مطرح شد
0

در کد دومی که فرستادید، دو خطا مشاهده می‌شود:

۱. شما دستور CURLOPT_HEADER را زمانی که روی false قرار دارد، به نحوی تنظیم کرده‌اید که همه ی پاسخ سرور را به خروجی curl_exec اضافه می‌کند. بنابراین، در جایی که از خروجی کد استفاده می‌کنید، یک پیغام خطا را مشاهده خواهید کرد. برای رفع این مشکل، این دستور را از کد حذف کنید.

۲. در شرطی که پاسخ از سرور دریافت نشد، از متغیر $result به جای $response_content باید استفاده کرد.

کدی که با تغییرات گفته‌شده، درست عمل می‌کند، به صورت زیر است:

$post_url = $_GET['url'];
$proxies_file = 'SOCKS5.txt';
$post_url .= '?embed=1';
$proxies = explode("\n", file_get_contents($proxies_file));
$gecko = 1;
$mozilla = 0;

foreach ($proxies as $proxy) {
    $user_agent = 'User-Agent: Mozilla/5.'.$mozilla.'(X11; Linux x86_64; rv:52.0) Gecko/'.$gecko.' Firefox/52.'.$mozilla;
    $mozilla++;
    $gecko++;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['User-Agent: '.$user_agent]);
    curl_setopt($ch, CURLOPT_URL, $post_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
    $result = curl_exec($ch);
    if ($result === false) {
        echo 'bad proxy'.PHP_EOL;
        curl_close($ch);
        continue;
    }

    preg_match('/data-view="(\w+)"/', $result, $matches);
    preg_match('/stel_ssid=(\w+)/', $result, $session);
    $ssid = $session[1];
    curl_setopt($ch, CURLOPT_URL, $post_url.'&view='.$matches[1]);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Requested-With: XMLHttpRequest', 'Cookie: stel_ssid='.$ssid, 'User-Agent: '.$user_agent]);
    $response_content = curl_exec($ch);
    if ($response_content === false) {
        echo 'Bad response'.PHP_EOL;
    } else {
        echo 'OK'.PHP_EOL;
    }
    curl_close($ch);
}

در این کد، دو تغییر اصلی انجام شده است:

۱. تنظیم دستور CURLOPT_HEADER بر روی false از کد حذف شده است.

۲. نام متغیری که خروجی curl در آن ذخیره می‌شود، از $result به $response_content تغییر کرده است.

اگر با تغییرات فوق کد را اجرا کنید، مشکل موجود در کد شما باید حل شود. بررسی کنید که آدرس فایل پروکسی در $proxies_file صحیح است و دسترسی‌ به آن دارید. به علاوه، مطمئن شوید که در فایل پروکسی، هر پروکسی در یک خط جداگانه قرار دارد.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام