A PHP class to ping hosts.
Switch branches/tags
Nothing to show
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
JJG Version bump to 1.1.2. Feb 2, 2017
Resources Added Ping logo. Oct 1, 2012
.gitignore PR #32 follow-up: Formatting and test split. Jun 4, 2016
.travis.yml Fixes #33: Update tests for modern PHP versions. Jun 4, 2016
LICENSE.md Added MIT License. Oct 1, 2012
README.md Fixed package name in readme Oct 6, 2016
composer.json bugfix autoload Oct 9, 2013


Ping for PHP Logo


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 it's benefits and drawbacks, and may work better or worse on a particular system.

Ping was created by Jeff Geerling of Midwestern Mac, LLC in 2012.


This is a very simple class. Just create an instance, and run ping().

$host = 'www.example.com';
$ping = new 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 Ping($host, $ttl, $timeout);

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

$ping = new Ping($host);

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

$ping = new Ping($host);


Ping is licensed under the MIT (Expat) license. See included LICENSE.md.