Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/geerlingguy/ping
A PHP class to ping hosts.
https://github.com/geerlingguy/ping
class linux mac macos network-tools networking packagist php ping windows
Last synced: 6 days ago
JSON representation
A PHP class to ping hosts.
- Host: GitHub
- URL: https://github.com/geerlingguy/ping
- Owner: geerlingguy
- License: mit
- Created: 2012-10-01T20:58:47.000Z (over 12 years ago)
- Default Branch: 1.x
- Last Pushed: 2023-07-10T23:12:58.000Z (over 1 year ago)
- Last Synced: 2025-01-31T19:24:38.700Z (6 days ago)
- Topics: class, linux, mac, macos, network-tools, networking, packagist, php, ping, windows
- Language: PHP
- Homepage: https://packagist.org/packages/geerlingguy/ping
- Size: 61.5 KB
- Stars: 468
- Watchers: 22
- Forks: 153
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Ping
[![Build Status](https://travis-ci.org/geerlingguy/Ping.svg?branch=1.x)](https://travis-ci.org/geerlingguy/Ping)
A PHP class to ping hosts.
There are a ton of different methods of pinging a server using PHP, and I've found most to be poorly documented or downright dangerous in their implementation.
Therefore, I've created this simple class, which incorporates the three most popular ping methods (`exec()` with the system's `ping` utility, `fsockopen()`, and `socket_create()`). Each method has its benefits and drawbacks, and may work better or worse on a particular system.
## Installation
```
$ composer require geerlingguy/ping
```## Usage
This is a very simple class. Just create an instance, and run `ping()`.
```php
$host = 'www.example.com';
$ping = new \JJG\Ping($host);
$latency = $ping->ping();
if ($latency !== false) {
print 'Latency is ' . $latency . ' ms';
}
else {
print 'Host could not be reached.';
}
```You can also specify the ttl (maximum hops) and timeout when creating the instance:
```php
$ttl = 128;
$timeout = 5;
$ping = new \JJG\Ping($host, $ttl, $timeout);
```...or using the `setTtl()` or `setTimeout()` methods:
```php
$ping = new \JJG\Ping($host);
$ping->setTtl(128);
$ping->setTimeout(5);
```You can change the host using the `setHost()` method:
```php
$ping = new \JJG\Ping($host);
...
$ping->setHost('www.anotherexample.com');
```## License
Ping is licensed under the MIT (Expat) license. See included LICENSE.md.
## Author
Ping is maintained by [Jeff Geerling](https://www.jeffgeerling.com), and is used to check servers for [Server Check.in](https://servercheck.in), an inexpensive website and server uptime monitoring service.