1"""
2Do a search with the LDAP URL specified at command-line.
3
4No output of LDAP data is produced except trace output.
5"""
6import sys,getpass,ldap,ldapurl
7
8try:
9  ldapUrl = ldapurl.LDAPUrl(ldapUrl=sys.argv[1])
10except IndexError:
11  print('Usage: %s [LDAP URL]' % (sys.argv[0]))
12  sys.exit(1)
13
14for a in [
15  'urlscheme','hostport','dn','attrs','scope',
16  'filterstr','extensions','who','cred'
17]:
18  print(a,repr(getattr(ldapUrl,a)))
19
20l = ldap.initialize(ldapUrl.initializeUrl(),trace_level=1)
21if ldapUrl.who!=None:
22  if ldapUrl.cred!=None:
23    cred=ldapUrl.cred
24  else:
25    print('Enter password for simple bind with',repr(ldapUrl.who))
26    cred=getpass.getpass()
27  l.simple_bind_s(ldapUrl.who,cred)
28
29res = l.search_s(ldapUrl.dn,ldapUrl.scope,ldapUrl.filterstr,ldapUrl.attrs)
30
31print(len(res),'search results')
32