#python #file #winapi
#python #файл #winapi
Вопрос:
У меня есть путь к файлу / папке в локальной сети, и мне нужно увидеть его пользовательское имя хоста или IP. Я использовал существующий код, например:
FILENAME = r'Y:\Projects\Username\test_json.js'
sd = win32security.GetFileSecurity (FILENAME, win32security.OWNER_SECURITY_INFORMATION)
owner_sid = sd.GetSecurityDescriptorOwner ()
name, domain, typ = win32security.LookupAccountSid ('server', owner_sid)
Наконец я получаю имя для входа на компьютер
Но возможно ли получить сетевое имя или IP-адрес пользователя папки файла?
Ответ №1:
Вы можете получить UNC-путь с сетевого диска с win32wnet.WNetGetUniversalName
помощью . И имя хоста включено.
import win32wnet
import sys
print(win32wnet.WNetGetUniversalName(FILENAME, 1))
Путь UNC выглядит так:
\hostnamesharenamefilepath
Вы можете получить IP-адрес с помощью
import socket
ip = socket.gethostbyname(hostname)
print(ip)
Комментарии:
1. к сожалению, это не дает мне имя пользователя папки. Просто полный путь к файлу с родительской сетевой папкой.
2. Итак, вам нужно имя пользователя или имя хоста?
WNetGetUniversalName(FILENAME, 1)
даст путь UNC, например :\hostname\sharename\path