从LDAP获取邮箱列表

rooftop64 2011-08-24 04:04:52
不会PHP,下面的代码是从网上东拆西借拼凑的,倒是能用,但是有BUG,求助各位大侠帮忙。

背景描述:LDAP中每个账户都有对应的一个mail字段,记录了该员工的邮箱
需求描述:从LDAP服务器中获取HR部门所有员工的邮箱列表,在/home/test目录下生成对应文件
BUG描述:能获取到部分邮箱,但是不全,有一些没有写到文件中

不知道什么地方写错了,请指教(似乎只有75分了,看来还是要常来CSDN)



<?php

$file = fopen("/home/test/maillist", "w");
// ldap bind
$ldapdn = 'somebody';
$ldappass = 'passwd';

// connect to ldap server
$ldapconn = ldap_connect("192.168.1.254", "389")
or die("Could not connect to LDAP server.");

if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldapdn, $ldappass);

// verify binding
if ($ldapbind) {
//list ldap mail
$basedn = "OU=HR,DC=company,DC=com";
$ldapmail = array("mail");
$sr = ldap_search($ldapconn, $basedn, "objectClass=*", $ldapmail);
$info = ldap_get_entries($ldapconn, $sr);

for ($i = 0; $i < $info["count"]; $i++) {
echo $info[$i]["mail"][0] . "\n";
fwrite($file, $info[$i]["mail"][0] . "\n");
}
} else {
echo "LDAP bind failed...";
}
}
?>
...全文
546 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rooftop64 2011-09-01
  • 打赏
  • 举报
回复
已经找到问题原因:AD默认对查询返回的数据量有限制,只能返回1000行
rooftop64 2011-08-26
  • 打赏
  • 举报
回复
又沉了,再顶
wuqiang1123 2011-08-25
  • 打赏
  • 举报
回复
你用的是 $ldapdn = 'somebody'; 用户登录的 搜索的不是只有自己的邮箱么
rooftop64 2011-08-25
  • 打赏
  • 举报
回复
沉了,自己顶一下
rooftop64 2011-08-25
  • 打赏
  • 举报
回复
$ldapdn = 'somebody'是bind的用户名,搜索的范围是
$basedn = "OU=HR,DC=company,DC=com";

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧