PHPackages                             weijiajia/http-proxy-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. weijiajia/http-proxy-manager

ActiveLibrary[HTTP &amp; Networking](/categories/http)

weijiajia/http-proxy-manager
============================

A Laravel package for managing HTTP proxies from various proxy service providers with a unified API

040PHP

Since May 20Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/jackchang1025/http-proxy-manager)[ Packagist](https://packagist.org/packages/weijiajia/http-proxy-manager)[ RSS](/packages/weijiajia-http-proxy-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

HTTP Proxy Manager
==================

[](#http-proxy-manager)

A Laravel package for managing HTTP proxies from various proxy service providers with a unified API.

[![Latest Version on Packagist](https://camo.githubusercontent.com/c3dd5faced17497f723e0ec24aedf635c7713b64f396a532ed3cde9a8fddcfe6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7765696a69616a69612f687474702d70726f78792d6d616e616765722e737667)](https://packagist.org/packages/weijiajia/http-proxy-manager)[![Total Downloads](https://camo.githubusercontent.com/d5984aec6427dd66089fc996ceeeeee27a069167774088e3c2793ee00e45ce6c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7765696a69616a69612f687474702d70726f78792d6d616e616765722e737667)](https://packagist.org/packages/weijiajia/http-proxy-manager)

简介
--

[](#简介)

HTTP Proxy Manager 是一个用于管理多个代理服务提供商的 Laravel 包。它提供了一个统一的接口来处理不同代理服务商的 API，使您可以轻松切换和管理 HTTP 代理，而无需修改应用程序代码。

该包基于 [Saloon PHP](https://github.com/saloonphp/saloon) 构建，提供了一个流畅且一致的 API 来处理 HTTP 请求。

功能特点
----

[](#功能特点)

- 统一的接口管理多个代理服务提供商
- 支持动态代理和账号密码认证代理
- 可配置的代理提供商设置
- 与 Laravel 框架无缝集成
- 基于驱动的设计，便于扩展

支持的代理服务提供商
----------

[](#支持的代理服务提供商)

- 华声代理 (HuaSheng)
- Storm Proxies
- 豌豆代理 (Wandou)
- IP Royal
- Smart 代理 (Smartdaili)
- Oxylabs
- Proxyscrape

安装
--

[](#安装)

通过 Composer 安装：

```
composer require weijiajia/http-proxy-manager
```

配置
--

[](#配置)

### 发布配置文件

[](#发布配置文件)

首先，发布配置文件：

```
php artisan vendor:publish --provider="Weijiajia\HttpProxyManager\ProxyManagerServiceProvider"
```

这将在 `config/http-proxy-manager.php` 创建配置文件。

### 环境变量

[](#环境变量)

在您的 `.env` 文件中设置默认的代理驱动：

```
PROXY_DRIVER=huashengdaili

```

### 配置文件

[](#配置文件)

配置文件 `http-proxy-manager.php` 包含了所有支持的代理服务提供商的设置。您可以根据需要修改这些设置：

```
return [
    'name'      => 'proxyManager',
    'default'   => env('PROXY_DRIVER', 'huashengdaili'),
    'providers' => [
        'huashengdaili' => [
            'default_mode' => 'dynamic',
            'connector' => \Weijiajia\HttpProxyManager\Drivers\HuaSheng\HuaShengConnector::class,
            'mode'      => [
                'dynamic' => [
                    'request' => \Weijiajia\HttpProxyManager\Drivers\HuaSheng\Request\Dynamic::class,
                    'dto'     => \Weijiajia\HttpProxyManager\Drivers\HuaSheng\Data\Dynamic::class,
                    'default_config' => [
                        // 默认配置项...
                    ],
                ],
            ],
        ],
        // 其他代理服务提供商配置...
    ],
];
```

使用方法
----

[](#使用方法)

### 基本用法

[](#基本用法)

```
use Weijiajia\HttpProxyManager\ProxyManager;

// 使用默认驱动获取代理
$proxyManager = new ProxyManager(app());
$proxy = $proxyManager->connector()->default();

// 或使用特定驱动
$proxy = $proxyManager->connector('huashengdaili')->default();
```

### 获取动态代理

[](#获取动态代理)

```
// 获取动态代理
$proxies = $proxyManager->connector()->dynamic();

// 获取代理信息
foreach ($proxies as $proxy) {
    echo $proxy->getIp();       // 代理 IP
    echo $proxy->getPort();     // 代理端口
    echo $proxy->getProtocol(); // 代理协议
}
```

### 获取账号密码认证代理

[](#获取账号密码认证代理)

```
// 获取账号密码认证代理
$proxy = $proxyManager->connector()->accountPassword();

echo $proxy->getIp();       // 代理 IP
echo $proxy->getPort();     // 代理端口
echo $proxy->getUsername(); // 用户名
echo $proxy->getPassword(); // 密码
echo $proxy->getProtocol(); // 代理协议
```

不使用 Laravel 框架的用法
-----------------

[](#不使用-laravel-框架的用法)

本包也可以在非 Laravel 项目中使用。以下示例展示了如何直接使用连接器发送请求。

### 使用花生代理连接器

[](#使用花生代理连接器)

```
use Weijiajia\HttpProxyManager\Drivers\HuaSheng\HuaShengConnector;
use Weijiajia\HttpProxyManager\Drivers\HuaSheng\Request\Dynamic;
use Weijiajia\HttpProxyManager\Drivers\HuaSheng\Data\Dynamic as DynamicData;

// 创建数据对象
$data = new DynamicData([
    'time'      => 10,       // IP 有效时长（分钟）
    'count'     => 1,        // 提取的 IP 数量
    'protocol'  => 'HTTP',   // IP 协议
    'type'      => 'json'    // 返回类型
]);

// 创建请求对象
$request = new Dynamic(['data' => $data]);

// 创建连接器
$connector = new HuaShengConnector($request);

// 发送请求并获取动态代理
$proxies = $connector->dynamic();

// 使用代理
foreach ($proxies as $proxy) {
    echo "代理 IP: " . $proxy->getIp() . "\n";
    echo "代理端口: " . $proxy->getPort() . "\n";
    echo "代理协议: " . $proxy->getProtocol() . "\n";
}
```

### 使用 IP Royal 账号密码认证代理

[](#使用-ip-royal-账号密码认证代理)

```
use Weijiajia\HttpProxyManager\Drivers\IpRoyal\IpRoyalConnector;
use Weijiajia\HttpProxyManager\Drivers\IpRoyal\Request\Residential;
use Weijiajia\HttpProxyManager\Drivers\IpRoyal\Data\Residential as ResidentialData;

// 创建数据对象
$data = new ResidentialData([
    'protocol'         => 'http',
    'sticky_session'   => false,
    'session_duration' => 10,
    'endpoint'         => 'geo.iproyal.com'
]);

// 创建请求对象
$request = new Residential(['data' => $data]);

// 创建连接器
$connector = new IpRoyalConnector($request);

// 发送请求并获取账号密码认证代理
$proxy = $connector->accountPassword();

// 使用代理
echo "代理 IP: " . $proxy->getIp() . "\n";
echo "代理端口: " . $proxy->getPort() . "\n";
echo "用户名: " . $proxy->getUsername() . "\n";
echo "密码: " . $proxy->getPassword() . "\n";
echo "代理 URL: " . $proxy->getUrl() . "\n";
```

### 在 HTTP 客户端中使用代理

[](#在-http-客户端中使用代理)

```
use GuzzleHttp\Client;

// 假设我们已经获取了代理信息
$proxy = $connector->default();

// 使用 Guzzle HTTP 客户端发送请求
$client = new Client([
    'proxy' => $proxy->getUrl(),
    'auth' => [
        $proxy->getUsername(),
        $proxy->getPassword()
    ]
]);

// 通过代理发送请求
$response = $client->get('https://api.ipify.org?format=json');
$ipInfo = json_decode($response->getBody(), true);

echo "通过代理显示的 IP: " . $ipInfo['ip'] . "\n";
```

代理模式
----

[](#代理模式)

该包支持两种主要的代理模式：

1. **动态代理** (`dynamic`): 提供动态变化的 IP 地址
2. **账号密码代理** (`flow`): 提供需要用户名和密码认证的代理

自定义代理提供商
--------

[](#自定义代理提供商)

您可以通过扩展基类来添加自己的代理提供商：

1. 创建 Connector 类扩展 `ProxyConnector`
2. 创建 Request 类扩展 `ProxyRequest` 并实现 `DynamicInterface` 或 `AccountPasswordInterface`
3. 创建 DTO 类扩展 `Proxy` 或 `Proxys`
4. 在配置文件中添加您的新代理提供商

贡献
--

[](#贡献)

欢迎对此项目做出贡献！请随时提交问题或拉取请求。

许可证
---

[](#许可证)

本项目使用 MIT 许可证 - 详情请查看 [LICENSE](LICENSE) 文件。

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/636557533fde1107bb301eca908de1c17c9ea7073d5c9c0fbad725ccd0800bde?d=identicon)[jackchang1025](/maintainers/jackchang1025)

---

Top Contributors

[![422066139](https://avatars.githubusercontent.com/u/1780162?v=4)](https://github.com/422066139 "422066139 (22 commits)")

### Embed Badge

![Health badge](/badges/weijiajia-http-proxy-manager/health.svg)

```
[![Health](https://phpackages.com/badges/weijiajia-http-proxy-manager/health.svg)](https://phpackages.com/packages/weijiajia-http-proxy-manager)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M318](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M292](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
