raitocz/pinger

用于ping目标URL的微型PHP库

v1.0.1 2017-10-13 11:43 UTC

This package is auto-updated.

Last update: 2024-09-26 21:07:45 UTC


README

Travis branch Packagist Pre Release license

安装

composer require raitocz/pinger

简介

该项目处于开发中,建议等待稳定版本发布后再使用(即将推出)。

用于ping目标URL的微型PHP库。您可以使用代理列表从不同计算机ping,这使得在您想测试来自不同IP的服务器负载时,本工具非常方便。使用风险自负,您可能会因攻击其他服务器而被列入黑名单。

用户代理由随机数字生成,因此服务器会被欺骗,认为每个请求都来自不同的计算机(即使没有指定代理列表,如果来自同一IP)。

此脚本在例如用于添加投票的无保护调查(页面刷新不会为每个链接生成链接)中表现良好,因为这就是它被创建的原因,后来转变为这个库。

警告

此脚本也可能快速占用您的计算机,因为它将每个请求作为单独的PHP进程来执行,因此过快的设置可能会充满您的RAM。这就是为什么等待时间是秒。尽管您可以将其设置为例如0.000001,但我强烈不推荐这样做。将其设置为0.1将在几秒钟内充满16GB RAM,例如。

请注意Windows系统对usleep()的限制,该函数被使用:https://php.ac.cn/manual/en/function.usleep.php

基本用法

每秒向一个URL发送100次简单请求

// As object:
$pinger = new Pinger();
$pinger->setUrls(array('https:///'))
    ->setRepeat(100)
    ->setWait(1)
    ->start();
    
// As static method:
Pinger::run(array('https:///'), 100, 1);

以下是不同模式的示例(仅使用静态方法以缩短代码)

随机模式(默认)

$urls = array(
    'https:///1',
    'https:///02',
    'https:///003',
    'https:///0004',    
);

Pinger::run($urls, 2, 1, Pinger::MODE_RANDOM);

结果

ping: https:///003
ping: https:///0004
ping: https:///003
ping: https:///1
ping: https:///0004
ping: https:///1
ping: https:///02
ping: https:///02

随机模式 No repeat

$urls = array(
    'https:///1',
    'https:///02',
    'https:///003',
    'https:///0004',    
);

Pinger::run($urls, 2, 1, Pinger::MODE_RANDOM_NOREPEAT);

结果

ping: https:///1
ping: https:///003
ping: https:///0004
ping: https:///02
ping: https:///003
ping: https:///0004
ping: https:///1
ping: https:///02

批量URL

$urls = array(
    'https:///1',
    'https:///02',
    'https:///003',
    'https:///0004',    
);

Pinger::run($urls, 2, 1, Pinger::MODE_BATCH_URL);

结果

ping: https:///1
ping: https:///1
ping: https:///02
ping: https:///02
ping: https:///003
ping: https:///003
ping: https:///0004
ping: https:///0004

批量数组

$urls = array(
    'https:///1',
    'https:///02',
    'https:///003',
    'https:///0004',    
);

Pinger::run($urls, 2, 1, Pinger::MODE_BATCH_ARRAY);

结果

ping: https:///1
ping: https:///02
ping: https:///003
ping: https:///0004
ping: https:///1
ping: https:///02
ping: https:///003
ping: https:///0004