Les Forums

Les Forums

Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer

[Astuce] - Récupération données annuaire 4760 en php

Le but de cette astuce est de récupérer, de stocker ou d'afficher les données d'annuaire Entreprise contenus dans le serveur 4760 en se passant complètement de l'annuaire HTM d'Alcatel.

Voici ci-dessous le code en PHP permettant d'afficher toutes les entrées annuaires entreprise (filtre sur objectclass=person) :
[code:1:417f937b15]
<?php
//Modifier l'adresse IP du serveur LDAP et le port
$serveur = "192.168.1.21:389";
echo "Connexion avec le serveur ".$serveur."<p>";
$ds=ldap_connect($serveur);
if ($ds)
{
echo "Liaison Anonyme...<br>";
$r=ldap_bind($ds);
if ($r)
{
$filtre="objectclass=person";
echo "Recherche des objets avec le filtre : ".$filtre."<br>";
// Recherche de tous les objets correspondant au critère de filtre
// Modifier le nom racineongletentreprise par le votre
$sr=ldap_search($ds,"o=racineongletentreprise,o=DirectoryRoot", "objectclass=person");
if ($sr)
{
echo "Le nombre d'entrées renvoyé est ".ldap_count_entries($ds,$sr)."<p>";
echo "<b>Lecture de la première entrée ...</b><br>";
$entry = ldap_first_entry ($ds, $sr);
if ($entry)
{
while($entry)
{
//Affichage des attributs de cette entrée
$attrs = ldap_get_attributes($ds, $entry);
echo $attrs["count"]." attributs dans cette entrée :<br>";
for ($i=0; $i<$attrs["count"]; $i++)
{
echo $attrs[$i]."=".$attrs[$attrs[$i]][0]."<br>";
}

$entry = ldap_next_entry($ds, $entry);
if ($entry)
{
echo "<p><b>Lecture de l'entrée suivante ...</b><br>";
}
} // while
}
}
}
else
{
echo "Impossible de s'authentifier en anonyme au serveur LDAP.";
}
echo "<p><b>Fermeture de la connexion</b>";
ldap_close($ds);
}
else
{
echo "Impossible de se connecter au serveur LDAP.";
}


?>[/code:1:417f937b15]
Noter que pour varier les recherches, il faut jouer sur objectclass

Maintenant, en faisant un petit formulaire html qui interroge le script recherche.php
Voici le Formulaire html :
[code:1:417f937b15]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<form action="recherche.php" method="post">

<label class="text-label" for="nom">nom</label><input class="text-field" name="nom" size="30" type="text"> <br>
<label class="text-label" for="prenom">Prenom</label><input class="text-field" name="prenom" size="15" type="text"><br>
<label class="text-label" for="direction">Direction</a></label><input class="text-field" name="direction" size="10" type="text"><br>
<label class="text-label" for="service">Service</a></label><input class="text-field" name="service" size="10" type="text"><br>
<label class="text-label" for="grade">Grade ou Fonction</a></label><input class="text-field" name="grade" size="30" type="text"><br>
<label class="text-label" for="lieu">Lieu</a></label><input class="text-field" name="lieu" size="15" type="text"><br>
<label class="text-label" for="etage">Etage</label><input class="text-field" name="etage" size="5" type="text"><br>
<label class="text-label" for="bureau">Bureau</label><input class="text-field" name="bureau" size="10" type="text"><br>
<label class="text-label" for="telephone">Téléphone ou Poste</label><input class="text-field" name="telephone" size="16" type="text"><br>
<input type="submit" action="submit" value="Envoi">
</form>

</body>
</html>
[/code:1:417f937b15]
et le recherche.php (qui ne recherche que le nom d'une personne en particulier, mais on peux faire beaucoup mieux) :
[code:1:417f937b15]<?php
$name=$_POST['nom'];
$serveur = "192.168.1.21:389";
$ds=ldap_connect($serveur);
if ($ds)
{
$r=ldap_bind($ds);
if ($r)
{
$filtre="objectclass=person";
$sr=ldap_search($ds,"o=racineongletentreprise,o=DirectoryRoot", "sn=".$name);
if ($sr)
{
$entry = ldap_first_entry ($ds, $sr);
if ($entry)
{
while($entry)
{
$attrs = ldap_get_attributes($ds, $entry);
for ($i=0; $i<$attrs["count"]; $i++)
{
echo $attrs[$i]."=".$attrs[$attrs[$i]][0]."<br>";
}

$entry = ldap_next_entry($ds, $entry);
if ($entry)
{
echo "<br>";
}
} // while
}
}
}
else
{
echo "Impossible de s'authentifier en anonyme au serveur LDAP.";
}
ldap_close($ds);
}
else
{
echo "Impossible de se connecter au serveur LDAP.";
}
?>[/code:1:417f937b15]


Tous ces codes ont été testés. Il faut bien sur avoir le PHP sur le serveur qui exécute ces codes et le module ldap.
salut,
et pour se connecter a la mib d'un routeur cisco en utilisant snmp; tu n'aurais pas un exemple a tout hazard,
thx
Ivanoe25,

Quel est le rapport avec l'annuaire ToIP? 😕

pour ton routeur :

tu active et configure le snmp dessus, puis avec un get snmp tu va chercher l'OID snmp qui t'intéresse en utilisant les paramètre de connexions que tu à rentré dans ton routeur. google peux t'aider la dessus 😉
Bonjour,
je recherche des infos me permettant d'ajouter les "07" sur mon 4400 via la 4760. Tu sembles être un pro dans ce domaine, tu as peut-être une info ?
En tout cas, grand merci pour ton code PHP d'exploitation du ldap.
d'avance merci.
Bonjour chez vous,

Je vois que c'est très pointu les codes publiés par ici. Quelqu'un serait dispo pour monter un petit projet extranet/intranet en php ? Ce serait dans le domaine de la [url=http://www.alternativeinformatique.com]récupération de données[/url] sur disque dur, je n'ai pas de spécialiste dans ma boite pour conduire ce type de projet sur ses épaules. Me contacter par e-mail pour plus d'infos...

Merci
Merci pour l'info,bonne journée!