LDAP avec cURL
Fermé
Ronieee
Messages postés
70
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
-
8 févr. 2011 à 11:54
Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 - 8 févr. 2011 à 14:33
Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 - 8 févr. 2011 à 14:33
A voir également:
- Curl ldap
- Ldap client windows - Télécharger - Édition & Programmation
- L'extension ldap de votre parseur php n'est pas installée - Forum Gestion de parc
- Curl apache - Forum Linux / Unix
- C++ ldap ✓ - Forum Linux / Unix
- Curl: (3) illegal characters found in url ✓ - Forum Shell
1 réponse
Ronieee
Messages postés
70
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
38
8 févr. 2011 à 14:33
8 févr. 2011 à 14:33
Bon, pour ceux que ca intéresse.
Si l'on veut utiliser les commandes LDAP avec la libcurl en C++, il faut bien posséder les librairies OpenLDAP dans son package.
De plus, pour ceux qui cherche un bout de code d'utilisation du LDAP avec cURL C++ : j'ai codé une version, que je n'ai pas pu tester. Je ne saurais dire si elle est juste ou non, mais je l'ai retranscrit d'un code php et ca devrait normalement marcher... :
size_t ws_write(char *ptr, size_t size, size_t nmemb, std::stringstream *stream) {
if(stream != NULL) { stream->write(ptr, size * nmemb); }
return size * nmemb;
}
int Ldap::getentries( ){
CURL *curl;
CURLcode ret;
std::stringstream out_stream;
std::string data;
std::string url="ldap://ldap.mondomaine.fr/dc=example,dc=com";
/*
ldap://hôte:port/DN?attributs?profondeur?filtre?extension
DN : le DN à partir duquel effectuer la recherche ;
attributs : liste contenant les attributs à renvoyer, séparés par des virgules ;
profondeur : base (par défaut), one ou sub pour la profondeur de la recherche ;
filtre : le filtre de recherche ;
extension : extensions éventuelles du format d'URL LDAP.
*/
curl = curl_easy_init();
// Options necessaires a la recuperation des donnees demandees
ret = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ws_write);
ret = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out_stream);
// Options de connection
ret = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
ret = curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
ret = curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
// Execution commande
ret = curl_easy_perform(curl);
if(ret != CURLE_OK){ cout << Ldap Error : << curl_easy_strerror(ret); }
curl_easy_cleanup(curl);
data = out_stream.str().c_str();
if( data == "" ) data = "$NotFound";
return 0;
}
Si l'on veut utiliser les commandes LDAP avec la libcurl en C++, il faut bien posséder les librairies OpenLDAP dans son package.
De plus, pour ceux qui cherche un bout de code d'utilisation du LDAP avec cURL C++ : j'ai codé une version, que je n'ai pas pu tester. Je ne saurais dire si elle est juste ou non, mais je l'ai retranscrit d'un code php et ca devrait normalement marcher... :
size_t ws_write(char *ptr, size_t size, size_t nmemb, std::stringstream *stream) {
if(stream != NULL) { stream->write(ptr, size * nmemb); }
return size * nmemb;
}
int Ldap::getentries( ){
CURL *curl;
CURLcode ret;
std::stringstream out_stream;
std::string data;
std::string url="ldap://ldap.mondomaine.fr/dc=example,dc=com";
/*
ldap://hôte:port/DN?attributs?profondeur?filtre?extension
DN : le DN à partir duquel effectuer la recherche ;
attributs : liste contenant les attributs à renvoyer, séparés par des virgules ;
profondeur : base (par défaut), one ou sub pour la profondeur de la recherche ;
filtre : le filtre de recherche ;
extension : extensions éventuelles du format d'URL LDAP.
*/
curl = curl_easy_init();
// Options necessaires a la recuperation des donnees demandees
ret = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ws_write);
ret = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out_stream);
// Options de connection
ret = curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
ret = curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
ret = curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
// Execution commande
ret = curl_easy_perform(curl);
if(ret != CURLE_OK){ cout << Ldap Error : << curl_easy_strerror(ret); }
curl_easy_cleanup(curl);
data = out_stream.str().c_str();
if( data == "" ) data = "$NotFound";
return 0;
}