Python等效于Perl Net::NBName以获取Windows用户名?
我正在尝试将一些Perl脚本重新编码为Python(并对其进行扩展)。使用Perl,使用Net库,我可以给出一个主机名并获取Windows用户名。下面是一段Perl代码:Python等效于Perl Net::NBName以获取Windows用户名?,python,perl,netbios,Python,Perl,Netbios,我正在尝试将一些Perl脚本重新编码为Python(并对其进行扩展)。使用Perl,使用Net库,我可以给出一个主机名并获取Windows用户名。下面是一段Perl代码: my $NetBios = Net::NBName->new; my $nbName = $NetBios->node_status($hostname); if ( $nbName ) { if ( $nbName->as_string =~ /^(\S+)\s+/ ) { ($us
my $NetBios = Net::NBName->new;
my $nbName = $NetBios->node_status($hostname);
if ( $nbName ) {
if ( $nbName->as_string =~ /^(\S+)\s+/ ) {
($user = $1) =~ tr/A-Z/a-z/;
}
}
我想用Python做同样的事情,但我似乎找不到合适的库来做这件事。有没有等效的方法
在后台,我获取连接到终端服务器端口的用户的主机名。因此,如果主机名中有“dhcp”或“vpn”,我想使用NetBIOS并尝试获取该系统(可能是PC)的用户名。尽管您无法将其传递给域
import getpass
print getpass.getuser()
平台uname也可能有用
import platform
platform.uname()
我在activestate中发现了以下内容(尽管我无法保证它的功能)
看起来用于Perl的NBName方法也不再有效。有人知道我怎么能做到这一点吗?瞧,给一个主机名,比如dhcp-192-168-1-200,给一个PC或Mac的用户名?
import win32api
import win32net
import win32netcon
def UserGetInfo():
dc=win32net.NetServerEnum(None,100,win32netcon.SV_TYPE_DOMAIN_CTRL)
user=win32api.GetUserName()
if dc[0]:
dcname=dc[0][0]['name']
return win32net.NetUserGetInfo("\\\\"+dcname,user,1)
else:
return win32net.NetUserGetInfo(None,user,1)
if __name__=="__main__":
print UserGetInfo()