python获取用户名_急!求助 Python 获取 windows 域用户名的方法

13

2016-08-05 09:54:48 +08:00   1

我看你的需求里有获取域用户名,还有登录域:

import ldap

import time

class Ldap(object):

def __init__(self):

self.server = "ldap 服务器地址"

self.servername = "需要申请的用来登录域的名称"

self.serverpass = "密码"

self.handle = ldap.initialize(self.server)

self.handle.protocol_version = ldap.VERSION3

self.handle.simple_bind(self.servername, self.serverpass)

self.basedn = u"OU=xx 研发中心,OU=xx,OU=xxxx,DC=xxxx,DC=xxx"

self.usercn = None

def searchdn(self, useremail):

self.searchscope = ldap.SCOPE_SUBTREE

# 这个 attr 可能要根据需要来更改

self.attr = "userPrincipalName"

self.retrieveattributes = None

self.searchfilter = "(" + self.attr + "=" + useremail + ")"

# 加入延时后测试通过,否则一直报错,怀疑中间过程太快

time.sleep(0.1)

ldap_result = self.handle.search(self.basedn, self.searchscope, self.searchfilter, self.retrieveattributes)

# 配置结果获取,返回 dn ,第三个参数为超时时间的设置,超过时间返回

result_type, result_data = self.handle.result(ldap_result, 0, 2)

self.usercn = result_data[0][0]

return self.usercn

# 认证功能

def auth(self, usercn, password):

try:

ldapuser = ldap.initialize(self.server)

ldapuser.simple_bind(usercn, password)

result_type, _ = ldapuser.result(timeout=2)

return result_type

except Exception, e:

return None

这是我根据网上的实例修改过的,用于自己项目的,可能看代码会更好理解一些。

不知道这个能不能满足你的需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用以下几种方法获取用户名: 1. 使用os.getlogin()函数: 返回当前登录用户的用户名。 2. 使用os.geteuid()函数: 返回当前进程的有效用户ID, 可以使用pwd.getpwuid(uid)将其转换为用户名。 3. 使用getpass.getuser()函数: 返回当前用户的用户名。 4. 使用platform.node()函数: 返回当前系统的主机名, 可能包含用户名。 第1和第2种方法用于活动会话,第3种方法用于脚本,第4种方法用于获取当前系统的主机名。 ### 回答2: 在Python中,获取用户名方法取决于具体的使用情境和操作系统。下面是常见的几种获取用户名方法: 1. 使用`getpass.getuser()`函数:这个方法适用于大多数操作系统,它可以直接获取当前登录用户的用户名。例如: ```python import getpass username = getpass.getuser() print(username) ``` 2. 使用`os`模块获取用户名:这个方法可以通过`os`模块的`environ`属性获取操作系统的环境变量,从而获取用户名。例如: ```python import os username = os.environ["USERNAME"] print(username) ``` 3. 使用`pwd`模块获取用户名:这个方法适用于UNIX和Linux系统,使用`pwd`模块的`getpwuid()`函数可以获取当前用户的用户名。例如: ```python import pwd username = pwd.getpwuid(os.getuid()).pw_name print(username) ``` 4. 使用`subprocess`模块调用命令行获取用户名:这个方法可以通过调用命令行获取用户名,适用于大多数操作系统。例如: ```python import subprocess username = subprocess.check_output("whoami").decode().strip() print(username) ``` 以上是几种常见的获取用户名方法,可以根据具体情况选择合适的方法。 ### 回答3: 在Python中,获取用户名有多种方法,下面是其中几种常用的方法: 1. 使用os模块:可以使用os模块中的getlogin()函数获取当前登录的用户名。它返回一个字符串,表示当前登录的用户名。需要注意的是,此方法在不同操作系统上的行为可能会有所不同。 示例代码: ``` import os username = os.getlogin() print("当前登录的用户名为:", username) ``` 2. 使用getpass模块:可以使用getpass模块中的getuser()函数获取当前操作系统上的用户名。它返回一个字符串,表示当前用户名。 示例代码: ``` import getpass username = getpass.getuser() print("当前用户名为:", username) ``` 3. 使用pwd模块:在Unix-like系统中,可以使用pwd模块中的getpwuid()函数获取当前用户的用户名。它需要传入一个整数参数,表示当前用户的用户ID。 示例代码: ``` import pwd import os user_id = os.getuid() username = pwd.getpwuid(user_id).pw_name print("当前用户名为:", username) ``` 需要注意的是,以上方法获取用户名可能会受到操作系统和环境的限制,因此在不同的操作系统和环境中可能会有不同的表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值