Download the PHP package akrez/http-proxy without Composer

On this page you can find all versions of the php package akrez/http-proxy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package http-proxy

# راه‌اندازی فیلترشکن با هاست اشتراکی PHP

چرا از هاست اشتراکی PHP استفاده کنیم؟

- **قیمت مناسب:** هاست‌های اشتراکی معمولاً هزینه‌ی بسیار کمتری نسبت به سرورهای اختصاصی دارند و این موضوع برای بسیاری از کاربران جذاب است. - **IP‌های تمیز:** هاست‌ها معمولاً از IP‌های تمیز و معتبر استفاده می‌کنند که می‌تواند در عملکرد بهتر فیلترشکن مؤثر باشد. - **پهنای باند نامحدود:** بسیاری از سرویس‌دهندگان هاستینگ پهنای باند نامحدود ارائه می‌دهند که این ویژگی برای فیلترشکن بسیار مناسب است، زیرا بدون نگرانی از محدودیت پهنای باند می‌توانید از اینترنت استفاده کنید. - **راه‌اندازی راحت‌تر:** مدیریت هاست اشتراکی و راه‌اندازی یک اسکریپت ساده PHP بسیار آسان‌تر از مدیریت سرور اختصاصی یا مجازی است.

چه مشکلاتی وجود دارد؟

- **محدودیت پروتکل‌ها:** هاست‌های اشتراکی ممکن است فقط از پروتکل‌های محدودی پشتیبانی کنند که این موضوع می‌تواند عملکرد فیلترشکن را تحت تأثیر قرار دهد. - **مناسب نبودن برای موبایل:** این روش هنوز برای گوشی‌های همراه بهینه‌سازی نشده است و نیاز به توسعه بیشتری دارد. - **پیچیدگی برای کاربران عادی:** استفاده از این نوع فیلترشکن ممکن است برای کاربران عادی کمی گیج‌کننده باشد و نیاز به راهنمایی بیشتری داشته باشد.

چطور کار می‌کند؟

به طور کلی این روش مشابه عملکرد یک **HTTP Proxy** است، اما به دلیل محدودیت‌ها، تفاوت‌هایی در نحوه اجرا وجود دارد: 1. درخواست اصلی دستکاری می‌شود تا بتوان آن را به هاست پراکسی ارسال کرد. 2. پس از رسیدن درخواست دستکاری‌شده به هاست پراکسی، درخواست اصلی بازیابی شده، پردازش می‌شود و پاسخ به کاربر بازگردانده می‌شود.

بیایید با یک مثال بررسی کنیم

فرض کنید می‌خواهیم درخواست زیر را به آدرس `www.blocked.com/sensored/content.json` ارسال کنیم: ### محدودیت‌ها - **محدودیت در متد:** شاید متد اصلی (مانند `OPTIONS`) روی هاست پشتیبانی نشود؛ پس باید قبل از ارسال، متد را به `POST` تغییر دهیم و در هاست، دوباره آن را بازیابی کنیم. - **هدر Host:** هدر `Host` درخواست اصلی با میزبان پراکسی متفاوت است و باید جایگزین شود. ### پس چه راه‌حلی داریم؟ آدرس درخواست را طوری تغییر می‌دهیم که به هاست پراکسی برسد. مثلاً: تبدیل می‌شود به: پس در این حالت، درخواست زیر به جای درخواست اصلی (در این مثال یعنی درخواست بالا) ارسال می‌شود: ### توضیح بخش‌های URL | بخش | توضیح | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `https://www.proxy-host.com/inline.php` | مسیر اسکریپت روی هاست اشتراکی. می‌تواند به عنوان توکن برای هر کاربر نیز عمل کند. یعنی اسکریپت میتواند روی فایل `unpredictable_personal_token.php` به جای `inline.php` هاست شود | | `https_OPTIONS` | بخش کانفیگ: پروتکل و متد. با `_` جدا می‌شوند و اختیاری‌اند. می‌توانید `debug` هم اضافه کنید (`https_OPTIONS_debug`). | | `www.blocked.com/sensored/content.json` | آدرس اصلی درخواست همراه با تمام پارامترها. | ### چرا فکر میکنی این راه بهتره؟ وقتی تغییرات را فقط توی آدرس اضافه کنیم با کمترین تغییرات میتونیم فیلتر یا تحریم را دور بزنیم. مثلا یک کتابخونه را در نظر بگیرید که با آدرس `https://api.telegram.org` در تعامل هست و این آدرس را در متغیر `$baseUrl` ذخیره کرده. حالا فقط کافیه به نحوی `$baseUrl` را به `https://www.proxy-host.com/inline.php/https/api.telegram.org` تغییر بدید. بدون اینکه نیازی باشه هدرها را دستکاری کنید. همین!

آیا باید دستی URL‌ها را تغییر دهیم؟

خیر. برای این کار از **MitmProxy** استفاده می‌کنیم تا درخواست‌ها به صورت خودکار دستکاری شوند. فایل‌های مورد نیاز در مسیر `client/addons.py` قرار دارند. ### مراحل نصب و راه‌اندازی ریپوزیتوری را کلون کنید تا فایل‌ها را در اختیار داشته باشید. یکی از نسخه‌های پرتابل MitmProxy را از دانلود کرده و فایل `mitmdump.exe` را به پوشه `client` منتقل کنید. یک بار فایل mitmdump.exe را اجرا کنید تا فایل‌های گواهی امنیتی لازم ایجاد شوند. برای نصب گواهی، دستور زیر را در Command Prompt (خط فرمان ویندوز) اجرا کنید: برای مرورگر فایرفاکس، بر اساس راهنمای رسمی MitmProxy، مراحل اضافی را انجام دهید. فایل addons.py را باز کنید و متغیر config را با تنظیمات مورد نیاز پر کنید. در نهایت، با پارامترهای زیر MitmProxy را اجرا کنید: در تنظیمات سیستم ویندوز، پراکسی را روی `127.0.0.1` و پورت را برابر `local_server_port` (اینجا 8080) قرار دهید.

برای هاست باید چه کاری انجام دهیم؟

دستور `composer require akrez/http-proxy` را اجرا کنید تا پوشه `vendor` ساخته بشه حالا یک فایل به اسم مثلا `inline.php` ایجاد کنید و کد زیر را در اون کپی کنید. پوشه `vendor` و `inline.php` را روی هاست آپلود کنید. - ممکنه آدرس `./vendor/autoload.php` برای شما متفاوت باشه که بستگی به محل آپلودش داره - فایل `inline.php` میتونه هر اسم دیگه‌ای داشته باشه همونطور که در بالا اشاره کردم - اگر مقدار `$request` برابر `null` بود یعنی اسکریپت به درستی صدا زده نشده یعنی مثلا آدرس `https://proxy-php-host.com/inline.php` به تنهایی صدا زده شده.

چرا نوشتم؟

- **خستگیمون در بره :** ما اینجا داریم زحمت میکشیم 😃 این کار حاصل 4 سال تلاش در زمان فراغت و حدود 7000 خط کد هست که با انواع کتابخانه ها مثل walkor/workerman و reactphp/reactphp و ... پیاده سازی شد اما جواب نداد تا بالاخره بهترین راه رو پیدا کردم. - **بهترش کنیم :** هنوز راه درستی برای دسترسی موبایل پیدا نکردم. همچنین به نظرم پیاده سازی برای کاربر معمولی سخته و البته کلی باگ دیگه هست. - **ایده بگیرید و بهترش رو بسازید :** این راه به ذهن من رسید اما امیدوارم شما بعد از خوندن کدها و ایده کلی از این پروژه راههای بهتری رو درست کنید (مثلا با استفاده از Http Tunnel). - **و استفاده کنیم :** مهمترین قسمت اینه، لذت اتصال به اینترنت آزاد با بیشترین استتار 🎉 لطفا به فکر بقیه هم باشید، فقط خودمون مهم نیستیم.

All versions of http-proxy with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
guzzlehttp/guzzle Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package akrez/http-proxy contains the following files

Loading the files please wait ...