En réalité il n’existe pas, à proprement parler, de fonction php pour pinguer. Nous allons donc utiliser la fonction exec(); qui nous permet d’utiliser les fonctions bash de votre serveur. (la ligne de commande). Et donc de lancer en php simplement un ping classique.

A noter : Vérifiez que votre hébergeur autorise l’utilisation de cette fonction.

L’intérêt est de pinguer le maximum de services automatiquement.
J’ai donc créé un tableau avec la liste la plus complète que j’ai pu trouver et on boucle dessus.
Pensez à adapter la liste de serveur à pinguer en fonction de vos besoins. Pour les sites web par exemple, pensez à enlever les adresses de blog.
Pas sûr que toutes les adresses fonctionnent.

N’hésitez pas à proposer des adresses à pinguer en commentaires !

function ping(){
//liste des adresses à pinguer
$adresses = Array(
"http://1470.net/api/ping",
"http://api.feedster.com/ping",
"http://api.feedster.com/ping.php",
"http://api.moreover.com/ping",
"http://api.moreover.com/RPC2",
"http://api.my.yahoo.com/RPC2",
"http://api.my.yahoo.com/rss/ping",
"http://bblog.com/ping.php",
"http://bitacoras.net/ping",
"http://blogdb.jp/xmlrpc",
"http://blog.goo.ne.jp/XMLRPC",
"http://blogsearch.google.com/ping/RPC2",
"http://blogmatcher.com/u.php",
"http://bulkfeeds.net/rpc",
"http://coreblog.org/ping/",
"http://mod-pubsub.org/kn_apps/blogchatt",
"https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast",
"http://ping.amagle.com/",
"http://ping.bitacoras.com",
"http://ping.bloggers.jp/rpc/",
"http://ping.blogmura.jp/rpc/",
"http://ping.blo.gs/",
"http://ping.cocolog-nifty.com/xmlrpc",
"http://pinger.blogflux.com/rpc/",
"http://ping.exblog.jp/xmlrpc",
"http://ping.feedburner.com",
"http://ping.myblog.jp",
"http://pingqueue.com/rpc/",
"http://ping.blogg.de/",
"http://ping.rootblog.com/rpc.php",
"http://ping.syndic8.com/xmlrpc.php",
"http://ping.weblogalot.com/rpc.php",
"http://ping.weblogs.se/",
"http://rcs.datashed.net/RPC2/",
"http://rpc.blogbuzzmachine.com/RPC2",
"http://rpc.blogrolling.com/pinger/",
"http://rpc.britblog.com/",
"http://rpc.icerocket.com:10080/",
"http://rpc.newsgator.com/",
"http://rpc.pingomatic.com/",
"http://rpc.tailrank.com/feedburner/RPC2",
"http://rpc.technorati.com/rpc/ping",
"http://rpc.weblogs.com/RPC2",
"http://rpc.wpkeys.com/",
"http://services.newsgator.com/ngws/xmlrpcping.aspx",
"http://signup.alerts.msn.com/alerts-PREP/submitPingExtended.doz",
"http://topicexchange.com/RPC2",
"http://trackback.bakeinu.jp/bakeping.php",
"http://www.a2b.cc/setloc/bp.a2b",
"http://www.bitacoles.net/ping.php",
"http://www.blogdigger.com/RPC2",
"http://www.blogoole.com/ping/",
"http://www.blogoon.net/ping/",
"http://www.blogpeople.net/servlet/weblogUpdates",
"http://www.blogroots.com/tb_populi.blog?id=1",
"http://www.blogshares.com/rpc.php",
"http://www.blogstreet.com/xrbin/xmlrpc.cgi",
"http://www.holycowdude.com/rpc/ping/",
"http://www.lasermemory.com/lsrpc/",
"http://www.imblogs.net/ping/",
"http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php",
"http://www.newsisfree.com/RPCCloud",
"http://www.newsisfree.com/xmlrpctest.php",
"http://www.popdex.com/addsite.php",
"http://www.snipsnap.org/RPC2",
"http://www.weblogues.com/RPC/",
"http://xmlrpc.blogg.de",
"http://xping.pubsub.com/ping/",
"http://blogupdate.org/ping/"
);
foreach($adresses as $adresse){
exec("ping -n 4 $adresse", $output, $retval);
if ($retval != 0) {
return false;
break;
}
}
}

A faire : créer une classe qui permette de paramétrer les pings par profil de site.