search.py 848 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import sys,pprint,ldap
  2. from ldap.ldapobject import LDAPObject
  3. from ldapurl import LDAPUrl
  4. class MyLDAPUrl(LDAPUrl):
  5. attr2extype = {
  6. 'who':'bindname',
  7. 'cred':'X-BINDPW',
  8. 'start_tls':'startTLS',
  9. 'trace_level':'trace',
  10. }
  11. ldap_url = MyLDAPUrl(sys.argv[1])
  12. trace_level = int(ldap_url.trace_level or '0')
  13. print '***trace_level',trace_level
  14. ldap.trace_level = trace_level
  15. l = LDAPObject(
  16. ldap_url.initializeUrl(),
  17. trace_level=trace_level,
  18. )
  19. l.protocol_version = 3
  20. l.set_option(ldap.OPT_REFERRALS,0)
  21. l.simple_bind_s((ldap_url.who or ''),(ldap_url.cred or ''))
  22. result = l.search_s(
  23. ldap_url.dn,
  24. ldap_url.scope or ldap.SCOPE_SUBTREE,
  25. ldap_url.filterstr or '(objectClass=*)',
  26. ldap_url.attrs or ['*']
  27. )
  28. pprint.pprint(result)
  29. print '***DIAGNOSTIC_MESSAGE',repr(l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE))
  30. l.unbind_s()