You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将LDAP Shell脚本转为Python2.6.6并解释脚本及-b选项

没问题,我来帮你一步步搞定这个需求!

原Shell代码的功能解释

这条ldapsearch命令是用来查询LDAP目录服务的,具体做了这些事:

  • 使用简单认证模式(-x参数,不采用SASL安全认证框架)
  • 连接到地址为ldap.bbc.network.lcl、端口为3477的LDAP服务器
  • 通过指定的绑定账号CN=LDAP\, Mine,OU=Resource Accounts,OU=Enterprise,DC=bbc,DC=network,DC=lcl和密码f2oH@LQ^911完成身份验证
  • 从DC=bbc,DC=network,DC=lcl这个节点开始,搜索所有带有center=1234属性的LDAP条目

-b选项的作用

-b是ldapsearch的核心参数之一,它指定了搜索基准DN(Distinguished Name,专有名称)。简单来说,就是告诉LDAP服务器:“我要从这个节点开始,向下遍历所有子节点,查找符合条件的条目”。所有的搜索操作都会以这个DN为起点,默认会覆盖该节点下的所有层级(除非用-s参数指定更小的搜索范围,比如只搜索当前节点)。

转换为Python 2.6.6代码

因为Python 2.6.6版本比较老旧,我们需要使用适配它的python-ldap库(建议安装python-ldap==2.4.10,这个版本支持Python 2.6)。下面是对应的代码:

import ldap

# 配置LDAP连接参数
LDAP_SERVER = 'ldap://ldap.bbc.network.lcl:3477'
BASE_SEARCH_DN = 'DC=bbc,DC=network,DC=lcl'
BIND_USER_DN = 'CN=LDAP\\, Mine,OU=Resource Accounts,OU=Enterprise,DC=bbc,DC=network,DC=lcl'
BIND_PASSWORD = 'f2oH@LQ^911'
SEARCH_FILTER = '(center=1234)'

try:
    # 初始化LDAP连接
    ldap_conn = ldap.initialize(LDAP_SERVER)
    # 执行简单绑定(对应原命令的-x参数)
    ldap_conn.simple_bind_s(BIND_USER_DN, BIND_PASSWORD)
    
    # 执行搜索:默认搜索范围为子树(ldap.SCOPE_SUBTREE),和原命令行为一致
    # 参数说明:基准DN、搜索范围、过滤条件、返回属性(None表示返回所有属性)
    search_results = ldap_conn.search_s(BASE_SEARCH_DN, ldap.SCOPE_SUBTREE, SEARCH_FILTER, None)
    
    # 打印结果
    print("查询到的LDAP条目:")
    for dn, attributes in search_results:
        print(f"条目DN:{dn}")
        for attr_name, attr_values in attributes.items():
            print(f"  {attr_name}: {attr_values}")
        print("-" * 50)
        
except ldap.LDAPError as error:
    print(f"LDAP操作失败:{error}")
finally:
    # 确保关闭连接
    if 'ldap_conn' in locals():
        ldap_conn.unbind_s()

代码说明:

  • ldap.initialize()用来创建LDAP连接对象,对应原命令的-h和-p参数
  • simple_bind_s()执行简单认证,对应原命令的-x、-D、-w参数
  • search_s()执行同步搜索,其中BASE_SEARCH_DN对应原命令的-b参数,SEARCH_FILTER对应最后的查询条件

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:09:04