Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python等效于Perl Net::NBName以获取Windows用户名?_Python_Perl_Netbios - Fatal编程技术网

Python等效于Perl Net::NBName以获取Windows用户名?

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

我正在尝试将一些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+/ ) {
        ($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()