Один из способов обработки самбы - использовать pysmb
.Если так, то это выглядит примерно так:
# we need to provide localhost name to samba
hostname = socket.gethostname()
local_host = (hostname.split('.')[0] if hostname
else "SMB{:d}".format(os.getpid()))
# make a connection
cn = SMBConnection(
<username>, <password>, local_host, <netbios_server_name>,
domain=<domain>, use_ntlm_v2=<use_ntlm_v2>,
is_direct_tcp=<self.is_direct_tcp>)
# connect
if not cn.connect(<remote_host>, <remote_port>):
raise IOError
# working connection ... to check if a directory exists, ask for its attrs
attrs = cn.getAttributes(<shared_folder_name>, <path>, timeout=30)
Некоторые примечания:
в приведенном выше примере public_pictures
- это shared folder
, тогда какpath
будет просто /
, вам необходимо знать, используете ли вы SMB для порта 139
или 445
(или пользовательский порт).Если последнее вам обычно требуется передать is_direct_tcp=True
(хотя некоторые серверы все еще будут обслуживать самбу NetBIOS на 445
)
, если вы ожидаете, что вам не понадобится имя пользователя или пароль, тогдавероятно, вы ожидаете подключения как username="guest"
с пустым паролем.