Script PHP pour Pinger un service web
Par jaycreation le jeudi, juillet 29 2010, 10:57 - php - Lien permanent
Les différentes plate-formes de service en ligne utilisent le ping pour être prévenues d’un changement qui peut les intéresser. C’est un système simple pour prévenir d’une mise à jour de vos flux dans les agrégateurs, de prévenir les annuaires ou les moteurs de recherche lorsque vous créez des articles ou en mettez à jour.
Le ping est devenu une étape indipensable à tout bon référencement. N’importe quel moteur de blog ou CMS digne de ce nom intègre d’ailleurs une solution de pinging. Voila pourquoi il faut également l’intégrer à vos sites. Voici une fonction en PHP pour effectuer un ping automatiquement à chaque fois que vous le désirez.
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.