轻松执行LDAP查询,结果超过1000个

ldap_paged_search的Python项目详细描述


摘要

ldap_paged_search是一个python库,可以使用更多 小于1000个结果,或将查询分解为更小的结果集以减少 服务器加载。

许多ldap服务器(如active directory)不会返回超过1000个 结果,除非使用分页请求。现有的Python LDAP库 支持分页,但需要一些不太直观的编码来执行。 这个库只是一个包装器,使分页搜索变得容易。

它的接口也比ldap库更容易执行查询 它包起来了。

要求

  • 在Python2.8上测试
  • 默认的python库包括ldap库

安装

通过PIP或简易安装

$ sudo pip install ldap_paged_search   # If you prefer PIP

$ sudo easy_install ldap_paged_search  # If you prefer easy_install

手动安装

$ git clone https://github.com/neoCrimeLabs/python-ldap_paged_search.git
$ cd python-ldap_paged_search
$ sudo python setup.py install

用法

初始设置

fromldap_paged_searchimportLdapPagedSearch# Required valuesurl='ldap://your.ldap.server'username='username'# for anything but active directoryusername='domain\\user'# for active directorypassword='yourPassword'baseDN='dc=company,dc=com'searchFilter='(&(objectCategory=user))'# Optional valuesmaxPages=0# 0 = everythingmaxPages=10# Return first 10 pages onlyattributes=['*']# Return all fieldsattributes=['FieldName','AnotherField']# Return specific fields onlypageSize=1000# How many records per page# Usual max is 1000; check your LDAP server docs

定义回调方法

# Using a callback method to process results uses less memory on large queries# Not using a callback search() will return all results as a single listdefmyCallback(dn,record):printdn,record

使用“with”查询

# maxPages, pageSize, attributes, and callback are all OPTIONALwithLdapPagedSearch(url,username,password,maxPages=2,pageSize=2)asl:results=l.search(baseDN,searchFilter,attributes=attributes,callback=myCallback)

替代查询方法

# maxPages, pageSize, attributes, and callback are all OPTIONALl=LdapPagedSearch(url,username,password,maxPages=2,pageSize=2)results=l.search(baseDN,searchFilter,attributes=attributes,callback=myCallback)

结果格式

# If you don't set a callback, your results will be returned as follows[('DistinctName1',{'FieldName':['value1','value2'],'AnotherField':['value'],}),('DistinctName2',{'FieldName':['value1','value2'],'AnotherField':['value'],}),...]

使用条件

我写这个图书馆是为了我自己使用,但我意识到其他人可能会觉得它很有用 有很多论坛主题描述了这个问题。

不幸的是,我不能保证任何积极的支持,但我会尽我最大的努力 许可证。也就是说,我很乐意接受带有适当更改的push请求 向图书馆的普通读者致辞。

简单地说,用这个你自己承担风险。如果成功了,太好了!如果没有,我可能不会 能够帮助你。不过,如果你修好了什么,请把它推回去,我会 可能会接受。:-)

此外,如果您在包、工具或商业软件中使用此库,请 我知道,我会把它列在这里!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓活动中添加地图?   Android上的java Sqlite:如何创建Sqlite dist db函数,以便在应用程序中使用lat、long进行距离计算   java Netbeans和Hibernate,导入pojo和hbm。xml   在spring引导应用程序中使用@bean的java声明bean   java Apache POI异常   java我可以为不同接口中的不同方法使用相同的名称吗?   java JavaFX如何从其他阶段控制器访问控制器?   java ActivityResultLauncher为空   java这两个通用函数之间有什么区别?   java在AEM 6.2中,自定义注释组件不适用于发布实例,但适用于作者实例   java HTTP 500作为使用Spring控制器对HTTP Post请求的响应   JavaGmailapi在Android上获取消息   如何使用绝对路径从Java运行Python文件?   java NPhard算法