¿Podría darme un ejemplo del uso de la biblioteca pysmb para conectarse a algún servidor samba? He leído que hay smb.SMBConnection.SMBConnection clase (nombre de usuario, contraseña, mi_nombre, remote_name, domain = '', use_ntlm_v2 = True) pero no puedo encontrar la manera de usarloEjemplo de pysmb
Respuesta
La clase SMBConnection le permitirá acceder a los archivos en el servidor Samba remoto en modo de bloqueo.
para recuperar la lista de los archivos en una carpeta compartida en el servidor remoto,
conn = SMBConnection(userid, password, client_machine_name, remote_machine_name, use_ntlm_v2 = True)
conn.connect(server_ip, 139)
filelist = conn.listPath('shared_folder_name', '/')
La lista de archivos devuelto será una lista de SharedFile
casos.
Más ejemplos se pueden encontrar en la carpeta tests/SMBConnectionTests
en el paquete fuente pysmb.
He estado usando pysmb para la enumeración de recursos compartidos de red últimamente, y he descubierto que no es tan fácil encontrar ejemplos buenos/completos. Yo te refiero a un pequeño script que escribí para enumerar los recursos compartidos SMB con pysmb: https://github.com/n3if/scripts/tree/master/smb_enumerator
En aras de la exhaustividad, también, he puesto aquí el fragmento de código que realiza la conexión y la enumeración:
try:
conn = SMBConnection(username,password,'name',system_name,domain,use_ntlm_v2=True,
sign_options=SMBConnection.SIGN_WHEN_SUPPORTED,
is_direct_tcp=True)
connected = conn.connect(system_name,445)
try:
Response = conn.listShares(timeout=30) # obtain a list of shares
print('Shares on: ' + system_name)
for i in range(len(Response)): # iterate through the list of shares
print(" Share[",i,"] =", Response[i].name)
try:
# list the files on each share
Response2 = conn.listPath(Response[i].name,'/',timeout=30)
print(' Files on: ' + system_name + '/' + " Share[",i,"] =",
Response[i].name)
for i in range(len(Response2)):
print(" File[",i,"] =", Response2[i].filename)
except:
print('### can not access the resource')
except:
print('### can not list shares')
except:
print('### can not access the system')
¿Qué pasa si el servidor samba tiene un inicio de sesión 'INVITADO'. ¿Qué proporcionar para el nombre de usuario y el campo de contraseña en ese caso? – user2033758
Yo diría Usuario = INVITADO y Contraseña = '' pero debería intentarlo. – neif
Me has salvado. Estaba usando PySmbClient pero no pude hacer que funcionara. Gracias. – grantathon
- 1. ejemplo
- 2. Ejemplo de Android JSoup
- 3. Ejemplo de Android SSLEngine
- 4. Ejemplo de resolución - Autofac
- 5. Ejemplo de startMonitoringSignificantLocationChanges
- 6. Ejemplo básico de pySQLite?
- 7. Ejemplo de O (n!)?
- 8. Ejemplo de SVG Salamander?
- 9. Ejemplo de TTPickerTextField
- 10. Ejemplo de patrón Singleton
- 11. Ejemplo multiproceso de Cherrypy
- 12. Ejemplo Aplicación de FasterCSV
- 13. Impresionante ejemplo de Ruby
- 14. Ejemplo práctico de polimorfismo
- 15. SSHD Ejemplo de Java
- 16. Ejemplo simple de DispatcherHelper
- 17. FSLex ejemplo de solución?
- 18. Ejemplo práctico de Bigtable
- 19. Ejemplo de Android AudioRecord
- 20. NUnit código de ejemplo?
- 21. Ejemplo de wxPython WebView
- 22. Ejemplo de contravariancia
- 23. Ejemplo completo de Haskore
- 24. Ejemplo de MultiSelectListPreferencia
- 25. onFocusChange ejemplo de código?
- 26. compresibilidad Ejemplo
- 27. ejemplo WeakHashMap
- 28. NSOutlineView ejemplo
- 29. multiprocesamiento.Pool ejemplo
- 30. Disruptor.NET ejemplo
Gracias. ¿Cómo se supone que deben verse las variables client_machine_name y remote_machine_name? ¿Qué parte de la dirección uso? ¿Incluyo "smb: //" en el nombre remoto? – hendrixski