raitocz / pinger
用于ping目标URL的微型PHP库
v1.0.1
2017-10-13 11:43 UTC
Requires (Dev)
- phpunit/phpunit: ^4.7
- satooshi/php-coveralls: ^0.6.1
This package is auto-updated.
Last update: 2024-09-26 21:07:45 UTC
README
安装
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