附一個驗證ldap的python程式碼。
import socket from ldap3 import Server, Connection, ALL def is_port_open(host, port): """ 檢查遠端主機的指定埠是否開放 :param host: 遠端主機地址 :param port: 要檢查的埠號 :return: 埠開放返回True,否則返回False """ try: with socket.create_connection((host, port), timeout=5) as sock: return True except (socket.timeout, ConnectionRefusedError): return False def test_ldap_service(host, port, user, password): """ 使用ldap3庫驗證LDAP服務是否正常 :param host: LDAP伺服器地址 :param port: LDAP伺服器埠 :param user: 使用者名稱 :param password: 密碼 :return: 驗證成功返回True,否則返回False """ try: server = Server(host, port=port, get_info=ALL) conn = Connection(server, user=user, password=password, auto_bind=False) # 嘗試手動繫結 if conn.bind(): print("LDAP服務驗證成功") return True else: print(f"LDAP服務驗證失敗: {conn.result}") return False except Exception as e: print(f"LDAP服務驗證失敗: {e}") return False if __name__ == "__main__": ldap_host = "192.168.2.51" ldap_port = 389 ldap_user = "cn=odooadmin,ou=LdapUsers,dc=wywr,dc=top" ldap_password = "***" # ldap_user = "cn=administrator,cn=users,dc=wywr,dc=top" # ldap_password = "***" # 檢查埠是否開放 if is_port_open(ldap_host, ldap_port): print(f"LDAP埠 {ldap_port} 開放") # 驗證LDAP服務 if test_ldap_service(ldap_host, ldap_port, ldap_user, ldap_password): print("LDAP服務正常") else: print("LDAP服務異常") else: print(f"LDAP埠 {ldap_port} 未開放")
注意:
公司是選的,不是建的
模板使用者也是選的,如果沒有模板使用者,要新建。