程式語言:Python
Package:pysmb
官方文件
功能:SMB 連接與處理,即是 Window 的網路芳鄰
Package:pysmb
官方文件
功能:SMB 連接與處理,即是 Window 的網路芳鄰
import socket
from smb.SMBConnection import SMBConnection
ip = '192.168.21.237'
name = socket.gethostbyaddr(ip)
ipGet = socket.gethostbyname(name[0])
print(name, ipGet, sep='\n')
remote_name = name[0]
conn = SMBConnection('username', 'password', 'any_name', remote_name)
assert conn.connect(ip, timeout=3)
for s in conn.listShares():
print('------------------------------------')
print('name', s.name)
print('comments', s.comments)
print('isSpecial', s.isSpecial)
print('isTemporary', s.isTemporary)
'''
SharedDevice.DISK_TREE 0x00
SharedDevice.PRINT_QUEUE 0x01
SharedDevice.COMM_DEVICE 0x02
SharedDevice.IPC 0x03
'''
print('type', s.type)
print('')
print('### FileList ###')
try:
for f in conn.listPath(s.name, '/'):
print(f.filename)
for f in conn.listPath(s.name, '/game'):
print(f.filename)
except:
print('### can not access the resource')
print('------------------------------------')
print('')
conn.close()
Class 類別
- NBNSProtocol Class
- 非同步取得 ip 或 hostname
- NetBIOS class
- 同步取得 ip 或 hostname
- SMBConnection Class
- 操作網路磁碟
- SMbHandler Class
- 提供 "smb://" 給 urllib2 使用
- SMBProtocolFactory Class
- 運用在 Twisted framework
- SharedDevice Class
- 網路磁碟屬性定義
- SharedFile Class
- 資料夾屬性定義
- SMB Exceptions
- 例外處理
class nmb.NetBIOS.NetBIOS(broadcast=True, listen_port=0)
- 似乎有 bug,建議用 socket 取代
- __init__(broadcast=True, listen_port=0)
- close()
- queryIPForName(ip, port=137, timeout=30)
- queryName(name, ip='', port=137, timeout=30)
from nmb.NetBIOS import NetBIOS import socket n = NetBIOS() ip = '192.168.21.6' name = n.queryIPForName(ip) # pysmb-1.1.19 會有問題 ipGet = n.queryName(name) print(name, ipGet) n.close() name = socket.gethostbyaddr(ip) ipGet = socket.gethostbyname(name[0]) print(name, ipGet, sep='\n')
class smb.SMBConnection.SMBConnection(username, password, my_name, remote_name, domain='', use_ntlm_v2=True, sign_options=2, is_direct_tcp=False)
- __init__(username, password, my_name, remote_name, domain='', use_ntlm_v2=True, sign_options=2, is_direct_tcp=False)
- my_name
- 任意名字
- remote_name
- 對方電腦的名字
- close()
- connect(ip, port=139, sock_family=2, timeout=60)
- createDirectory(service_name, path, timeout=30)
- service_name
- share 的名字
- path
- 路徑,例:'\' 或 '\folder'
- timeout
- 試著連接的最大時間,單位為秒
- deleteDirectory(service_name, path, timeout=30)
- service_name
- share 的名字
- path
- 路徑,例:'\' 或 '\folder'
- timeout
- 試著連接的最大時間,單位為秒
- deleteFiles(service_name, path_file_pattern, timeout=30)
- service_name
- share 的名字
- echo(data, timeout=10)
- getAttributes(service_name, path, timeout=30)
- service_name
- share 的名字
- path
- 路徑,例:'\' 或 '\folder'
- timeout
- 試著連接的最大時間,單位為秒
- listPath(service_name, path, search=55, pattern='*', timeout=30)
- 列出路徑下的檔案和資料夾
- service_name
- share 的名字
- path
- 路徑,例:'\' 或 '\folder'
- search
- SMB_FILE_ATTRIBUTE_READONLY | SMB_FILE_ATTRIBUTE_HIDDEN | SMB_FILE_ATTRIBUTE_SYSTEM | SMB_FILE_ATTRIBUTE_DIRECTORY | SMB_FILE_ATTRIBUTE_ARCHIVE
- timeout
- 試著連接的最大時間,單位為秒
- listShares(timeout=30)
- 列出分享的資料夾
留言
張貼留言