Задать вопрос
tmman
@tmman
Обои из семерки наконец-то пригодились!

Как получить все адреса из Kerio по ldap?

Пытаюсь программно получить все адреса по ldap из Kerio. Вот этот код вернул мне только 200 контактов из некой Public Folders:
<?php
error_reporting(E_ERROR);
$info = loginToLDAPInfo549post();
var_dump($info);
function loginToLDAPInfo549post($login="")
{
	$ds = ldap_connect("myserver", 389);
	if ($ds === false)
	{
		echo 'Возможно, используется некорректный синтаксис ldap_connect<br />';
		return;
	}
	ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
	ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
	$ldapbind = ldap_bind($ds, 'login', 'pass');
	if ($ldapbind === false)
	{
		echo "LDAP bind failed...<br />";
		return;
	}

	$dn='';
	$pageSize = 1000;
        $cookie = '';
	$info = array();
	$attributes = array("displayname", "samaccountname", "userprincipalname", "mail");
	//$attributes = array("mail");
	do {
		ldap_control_paged_result($ds, $pageSize, true, $cookie);
		$sr = ldap_search(
			$ds,
			$dn,
			'(|(objectClass=*))',
			$attributes,
			0,          // not attrsonly 
			$pageSize   //sizelimit
		);

		if ($sr === false)
		{
			//echo ldap_error($ds);
			ldap_unbind($ds);
			return false;
        }
		$rawinfo = ldap_get_entries($ds, $sr);
		$info = array_merge($info, $rawinfo);
		ldap_control_paged_result_response($ds, $sr, $cookie);
	}while($cookie !== null && $cookie != '');
	ldap_unbind($ds);
	return $info;
}
?>


Но у меня в Outlook прикреплена адресная книга, в которой явно больше этих 200 адресов, но непонятно, что за настройки используются при подключении. Логин и пароль в коде такой же, как и в аутлуке.
  • Вопрос задан
  • 646 просмотров
Подписаться 1 Сложный 2 комментария
Решения вопроса 1
tmman
@tmman Автор вопроса
Обои из семерки наконец-то пригодились!
В общем, видимо, 200 - это какая-то настройка по умолчанию на стороне сервера. Как, например, 1000 записей за раз в AD. Я изменил параметр $filter (в коде выше там '(|(objectClass=*))') на, например, cn=нужное_значение и пока получил то, что хотел. Ну то есть не все записи, а по ФИО получил email. Вопрос с полным списком пока не решен.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы