A PHP class to ping hosts.

Maintainers

👁 geerlingguy

Package info

github.com/geerlingguy/Ping

pkg:composer/geerlingguy/ping

Fund package maintenance!

geerlingguy

Patreon

Statistics

Installs: 2 160 270

Dependents: 16

Suggesters: 0

Stars: 477

Open Issues: 3

1.2.1 2019-07-29 21:54 UTC

Requires

None

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT e0206326e23c99e3e8820e24705f8ca517adff93

  • Jeff Geerling <jeff.woop@jeffgeerling.com>

This package is auto-updated.

Last update: 2026-06-18 00:37:37 UTC


README

👁 Ping for PHP Logo

Ping

👁 Build Status

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().

$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:

$ttl = 128;
$timeout = 5;
$ping = new \JJG\Ping($host, $ttl, $timeout);

...or using the setTtl() or setTimeout() methods:

$ping = new \JJG\Ping($host);
$ping->setTtl(128);
$ping->setTimeout(5);

You can change the host using the setHost() method:

$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, and is used to check servers for Server Check.in, an inexpensive website and server uptime monitoring service.