Получить имя хоста по свойствам папки / файла

#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