Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Python SMB Connection
-
-
@DavinE could you try, with your own user, pwd, server
from SMB_client import SMB_client import keychain server_ftp = 'VOO-USB' user = 'voo' # get password from keychain pwd = keychain.get_password(server_ftp,user) my_smb = SMB_client(username=user,password=pwd, smb_name='VOO-USB', print_errors=False) my_smb.connect() print(my_smb.getRemoteDir('', '*'))
-
smb_files = my_smb.getRemoteDir('', '*') for smb_file in smb_files: smb_filename = smb_file.filename print(smb_file.filename)
-
@cvp said:
@DavinE could you try, with your own user, pwd, server
from SMB_client import SMB_client import keychain server_ftp = 'VOO-USB' user = 'voo' # get password from keychain pwd = keychain.get_password(server_ftp,user) my_smb = SMB_client(username=user,password=pwd, smb_name='VOO-USB', print_errors=False) my_smb.connect() print(my_smb.getRemoteDir('', '*'))
i get
None
but is it correct that i set my pass in
server_ftp
-
@DavinE said:
but is it correct that i set my pass in server_ftp
Forget my keychain process. In all my scripts, I store my passwords in keychain.
Use your username='xxx',password='xxx',smb_name='xxx' -
@DavinE and put your ip as server (my server has an ip but also a name)
-
@cvp
sry.... i'm confused....smb_name = "" # That is my Folder share name or ??
and where i need to put my Server ip ?i have this:
my_smb = SMB_client(username=user,password=pwd, smb_name='home', print_errors=False)
-
@DavinE this should be ok if you know the ip but not the smb name
ip = .... my_smb = SMB_client() smb_name = my_smb.getBIOSName(ip) print(smb_name) my_smb = SMB_client(username=user,password=pwd, smb_name=smb_name, print_errors=False) my_smb.connect() smb_files = my_smb.getRemoteDir('', '*') for smb_file in smb_files: smb_filename = smb_file.filename print(smb_file.filename)
-
-
-
@DavinE said:
Here i get None
I you used my last post, that would say the ip is not correct.
The first my_smb is used to get the smb_name from the ip and the second uses the smb_name.I print the smb_name, do you see it?
-
Now, this should work if you know the ip
from SMB_client import SMB_client ip = 'xxx.xxx.xxx.xxx' user = 'xxxxxx' pwd = 'xxxxx' my_smb = SMB_client() smb_name = my_smb.getBIOSName(ip) print('smb_name=',smb_name) my_smb = SMB_client(username=user,password=pwd, smb_name=smb_name, print_errors=False) my_smb.connect() smb_files = my_smb.getRemoteDir('', '*') for smb_file in smb_files: smb_filename = smb_file.filename print(smb_file.filename)
-
@cvp said:
Now, this should work if you know the ip
from SMB_client import SMB_client ip = 'xxx.xxx.xxx.xxx' user = 'xxxxxx' pwd = 'xxxxx' my_smb = SMB_client() smb_name = my_smb.getBIOSName(ip) print('smb_name=',smb_name) my_smb = SMB_client(username=user,password=pwd, smb_name=smb_name, print_errors=False) my_smb.connect() smb_files = my_smb.getRemoteDir('', '*') for smb_file in smb_files: smb_filename = smb_file.filename print(smb_file.filename)
so i tried it with my Raspberry Pi2....
here is my output:pi@RaspberryPi2:~/TEST/smb $ python smb_de.py ('smb_name=', 'ELEKTROTECHNIK') . .. Drive
on my iPad pro 12.9" i get only:
smb_name=, ELEKTROTECHNIK
with the same user and pwd....
this is a iPad problem or ? -
@cvp said:
my_smb = SMB_client()
smb_name = my_smb.getBIOSName(ip)
print('smb_name=',smb_name)These lines do not use user nor pwd, it is only to get the smb_name that you need to use in tHe second. Note that if you know this smb_name, the ip is not necessary
my_smb = SMB_client(username=user,password=pwd, smb_name=smb_name, print_errors=False) my_smb.connect() smb_files = my_smb.getRemoteDir('', '*') for smb_file in smb_files: smb_filename = smb_file.filename print(smb_file.filename)
-
@DavinE said:
pi@RaspberryPi2:~/TEST/smb $ python smb_de.py
This line is printed by the smb client, and it is not the same on iPad, it does not print anything, it is normal.
But is the connection ok?
-
@cvp ,
this is my test code for my connection:
import smb, socket from smb.SMBConnection import SMBConnection from nmb.NetBIOS import NetBIOS netbios = NetBIOS() user = 'xxx' pwd = 'xxx' share_name = "ELEKTROTECHNIK" user_name = user password = pwd server_IP = "xxx.xxx.178.251" local_machine_name = socket.gethostname() server_machine_name = netbios.queryIPForName(server_IP) print(server_machine_name[0]) # create and establish connection conn = SMBConnection(user_name, password, local_machine_name, server_machine_name[0], domain="WORKGROUP", use_ntlm_v2=True) # 139 # 445 print(conn.connect(server_IP, 139))
on my iPad i get here
False
on my Raspi2 i get
True
.....or need i to "translate" my Pwd on my iPad in Base64 ?
-
@DavinE said:
or need i to "translate" my Pwd on my iPad in Base24 ?
No.
Did you retry with the other port? 445
-
@cvp
yes, its the sameFalse
-
@DavinE you cold also remove ,use_ntlm_v2 = True) in the source code of SmB_client.py
Just to check
-
@cvp
Its the same...