Test connexion XML-RPC – Script PHP

7 décembre 2011
By

xml-rpcXML-RPC fournit un service WEB permettant d’appeler une fonction sur un serveur distant à partir de n’importe quel système d’exploitation et de langage de programmation.

Le protocole XML-RPC permet de transmettre, assez facilement,  n’importe quel type d’informations, d’exécuter des programmes à distance et de recevoir des structures de données complexes. De la documentation et des exemples d’implémentation dans différents langes de programmations sont disponibles sur la page XML-RPC HowTo.

 

XML-RPC est entre autre utilisé sur des plateformes type WordPress offrant ainsi la possibilité de publier des articles à partir d’un éditeur externe.  Par exemple vous pouvez créer un blog sur WordPress.com et publier des articles via un programme PHP depuis un autre serveur.  Jérémy Allard détail un exemple pratique dans l’article : WordPress XmlRpc – Comment Schéduler des Articles ?

Cependant une petite question reste en suspens. Comment savoir si le protocole XML-RPC est activé. Eh bien rien de plus simple avec le script PHP, détaillé ci-dessous, qui permet de vérifier si le protocole  XML-RPC est opérationnel sur le serveur où  est hébergé votre blog.

Pour utiliser ce script rien de compliqué. Il suffit de renseigner les 3 variables $xmlrpcServer, $xmlrpcUser & $xmlrpcPasswd.

Si la connexion au serveur XML-RPC est opérationnel, il est alors affiché les informations utilisateur suivantes :

  • nickname (pseudo)
  • userid (correspond à l’ID utilisateur/blog)
  • url (adresse du blog)
  • lastname (vide)
  • firstname (vide)
  • service xml-rpc (xmlrpc-ixr)

Rem : Ce script utilise la librairie Incutio XML-RPC.

Exemple de test de connexion XML-RPC en PHP

< ?php
//
// Description : test-XMLRPC.php
// Version     : 1.0.0
// Auteur      : lemoussel
// Licence     : Creative Commons BY-NC-SA 2.0
// Script url  : http://www.seoblack-inside.com/
//

set_time_limit(0);

define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);

require_once(ABSPATH . 'IXR_Library.php');

function testConnectRPC($RPCserver, $username, $password) {
	$paramsRPC = array('', $username, $password);

	if(!function_exists("xmlrpc_encode_request"))
	{
		$clientRPC = new IXR_Client($RPCserver);
		if (! $clientRPC->query('blogger.getUserInfo', $paramsRPC))
			die("Erreur IXR XML-RPC - " . $clientRPC->getErrorCode() . ' : '.$clientRPC->getErrorMessage());
		$responseRPC = $clientRPC->getResponse();
		$responseRPC['connexion'] = 'xmlrpc-ixr';
	}
	else
	{
		$mreq = xmlrpc_encode_request('blogger.getUserInfo', $paramsRPC);

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_POSTFIELDS, $mreq);
		curl_setopt($ch, CURLOPT_URL, $RPCserver);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_TIMEOUT, 1);
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
		$XMLresponseRPC = curl_exec($ch);
		curl_close($ch);
	  
		$responseRPC = xmlrpc_decode($XMLresponseRPC);
		if ($responseRPC && xmlrpc_is_fault($responseRPC))
			die("Erreur XML-RPC: $responseRPC[faultString] ($responseRPC[faultCode])");
		$responseRPC['connexion'] = 'xmlrpc-epi';
	}

	return $responseRPC;
}

// URL du serveur XML-RPC
$xmlrpcServer = 'http://SERVEUR/xmlrpc.php';
// Identifiant
$xmlrpcUser = 'USER';
// Mot de Passe
$xmlrpcPasswd = 'PWD';

$response = testConnectRPC($xmlrpcServer, $xmlrpcUser, $xmlrpcPasswd);

echo 'Test de connexion XML RPC ';
echo '------------------------- ';
echo '';
echo 'server: ' . $xmlrpcServer . '';
echo '';
if (isset($response))
	foreach ($response as $key => $value) echo "$key: $value ";
?>
VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Mots clés recherchés :

  • script php seo
  • activer protocole xml rpc
  • scripts xml teste
  • test rpc xml websevice
  • tester mot de passe en ligne par script php
  • text de connexion
  • voir si mon serveur xmlrpc est active
  • xml rpc php
  • xml rpc wordpress php
  • xml-rpc en php

No related posts.

Tags: , , , ,

3 Responses to Test connexion XML-RPC – Script PHP

  1. Jeremy on 7 décembre 2011 at 19 h 31 min

    Merci pour la citation chef …

    Sur wordpress un truc tout con que tu peux faire sans avoir besoin de identifiants, c’est de demander la methode list.method il me semble.

    Si le XMLRPC est activé tu recois la liste des méthodes accessible … Sinon il t’es retourné que le RPC n’est pas dispo.

    C’est plus sympa pour tester d’autres possibilités … Genre: “mon concurrent a-t-il activé le XMLRPC ? Puis-je me permettre quelques requêtes pour le ralentir ?” :D

  2. Thibaut on 8 décembre 2011 at 16 h 04 min

    Ca me rappelle quelques souvenirs, n’est-ce pas ;-)

  3. Panneaux solaires on 17 janvier 2012 at 11 h 22 min

    Merci pour ce bout de script, il me manquait cette partie à ma prog pour poster en xml

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

This site uses KeywordLuv. Enter YourName@YourKeywords in the Name field to take advantage.

What is 13 + 3 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)