Aşağıdaki kodla bir LDAP sunucusuna bağlanıp, searchFilter olarak tanımlanan kısımdaki kullanıcının var olup olmadığı sorgulanmaktadır. Test esilip çalıştığı görülmüştür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#!/usr/bin/python LDAPServer="ldap2.bilecik.edu.tr" baseDN = "ou=personel, dc=bilecik,dc=edu,dc=tr" searchFilter = "uid=murat.ozalp" import ldap try: l = ldap.open(LDAPServer) l.protocol_version = ldap.VERSION3 except ldap.LDAPError, e: print e searchScope = ldap.SCOPE_SUBTREE retrieveAttributes = None try: ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes) result_set = [] while 1: result_type, result_data = l.result(ldap_result_id, 0) if (result_data == []): break else: if result_type == ldap.RES_SEARCH_ENTRY: result_set.append(result_data) print result_set except ldap.LDAPError, e: print e |
Betiğin örnek doğru ve hatalı sorgulama çıktısı:
1 2 3 4 |
cunyor@cunyor-du:~/Desktop/betikler$ ./ldap-simple.py [[('uid=murat.ozalp,ou=personel,dc=bilecik,dc=edu,dc=tr', {'uid': ['murat.ozalp'], 'objectClass': ['account', 'extensibleObject', 'uidObject', 'userSecurityInformation', 'top'], 'member': ['ou=personel,dc=bilecik,dc=edu,dc=tr'], 'sn': ['Ozalp'], 'email': ['murat.ozalp@bilecik.edu.tr'], 'name': ['Murat']})]] cunyor@cunyor-du:~/Desktop/betikler$ ./ldap-simple.py [] |
Kaynaklar: