omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    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

    Pythonista
    3
    85
    24339
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DavinE
      DavinE @cvp last edited by

      @cvp said:

      @DavinE said:

      in your case whats the self.smb_name? Server Name

      Yes

      When i use your code above

      ip = bios.queryName(self.smb_name)
                  return ip[0]
      

      server_machine_name = netbios.queryIPForName(server_IP)[0]

      print(server_machine_name) ELEKTROTECHNIK
      print(local_machine_name) Davin
      print(netbios.queryName(server_machine_name)) and here None

      why none ?

      1 Reply Last reply Reply Quote 0
      • DavinE
        DavinE @cvp last edited by DavinE

        @cvp said:

        @DavinE said:

        local_machine_name = socket.gethostname()
        server_machine_name = netbios.queryIPForName(server_IP)

        Did you try with

        local_machine_name  = socket.gethostname()[0]
        server_machine_name = netbios.queryIPForName(server_IP)[0]
        

        This did not work here i get only the first letter

        local_machine_name = socket.gethostname()[0]

        in my case D

        cvp 1 Reply Last reply Reply Quote 0
        • cvp
          cvp @DavinE last edited by

          @DavinE could you try with my module
          SMB_client.py

          and

          from SMB_client import SMB_client
          
          my_smb = SMB_client(username='admin',password='admin',smb_name='share')
          my_smb.connect()
          
          tree = my_smb.getRemoteTree()
          for elem in tree:
          	print(elem)
          
          DavinE 1 Reply Last reply Reply Quote 0
          • DavinE
            DavinE @cvp last edited by

            @cvp said:

            @DavinE could you try with my module
            SMB_client.py

            and

            from SMB_client import SMB_client
            
            my_smb = SMB_client(username='admin',password='admin',smb_name='share')
            my_smb.connect()
            
            tree = my_smb.getRemoteTree()
            for elem in tree:
            	print(elem)
            

            yeah i tried it but i can retry it...

            i do not have SMB_client installed
            should i install it ? and try

            cvp 2 Replies Last reply Reply Quote 0
            • cvp
              cvp @DavinE last edited by

              @DavinE did you see the link in my post?

              DavinE 1 Reply Last reply Reply Quote 0
              • cvp
                cvp @DavinE last edited by

                @DavinE said:

                should i install it ? and try

                Sure

                1 Reply Last reply Reply Quote 0
                • DavinE
                  DavinE @cvp last edited by

                  @cvp said:

                  @DavinE did you see the link in my post?

                  yeah sry, that's my mistake....

                  i get this output:

                  Error on line 47 TypeError 'NoneType' object is not subscriptable
                  Error on line 62 TypeError str, bytes or bytearray expected, not NoneType
                  Error on line 87 NotReadyError SMB connection not authenticated
                  
                  cvp 2 Replies Last reply Reply Quote 0
                  • cvp
                    cvp @DavinE last edited by

                    @DavinE strange, I'll check, my smb connection works

                    DavinE 1 Reply Last reply Reply Quote 0
                    • DavinE
                      DavinE @cvp last edited by

                      @cvp said:

                      @DavinE strange, I'll check, my smb connection works

                      Thanks for your Work @cvp

                      1 Reply Last reply Reply Quote 0
                      • cvp
                        cvp @DavinE last edited by cvp

                        @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('', '*'))
                        
                        DavinE 1 Reply Last reply Reply Quote 0
                        • cvp
                          cvp last edited by

                          smb_files = my_smb.getRemoteDir('', '*')
                          for smb_file in smb_files:
                          	smb_filename = smb_file.filename
                          	print(smb_file.filename)
                          
                          1 Reply Last reply Reply Quote 0
                          • DavinE
                            DavinE @cvp last edited by

                            @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

                            cvp 3 Replies Last reply Reply Quote 0
                            • cvp
                              cvp @DavinE last edited by

                              @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'

                              1 Reply Last reply Reply Quote 0
                              • cvp
                                cvp @DavinE last edited by cvp

                                @DavinE and put your ip as server (my server has an ip but also a name)

                                1 Reply Last reply Reply Quote 0
                                • DavinE
                                  DavinE last edited by

                                  @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)
                                  
                                  cvp 1 Reply Last reply Reply Quote 0
                                  • cvp
                                    cvp @DavinE last edited by

                                    @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 1 Reply Last reply Reply Quote 0
                                    • cvp
                                      cvp @DavinE last edited by

                                      @DavinE said:

                                      sry.... i'm confused..

                                      I'm too, forget all except my just previous post

                                      1 Reply Last reply Reply Quote 0
                                      • DavinE
                                        DavinE @cvp last edited by

                                        @cvp said:

                                        @DavinE this should be ok if you know the ip but not the smb name

                                        print(smb_name)
                                        

                                        This is: ELEKTROTECHNIK
                                        i think that's correct!

                                        smb_files = my_smb.getRemoteDir('', '*')
                                        print(smb_files)
                                        

                                        Here i get None

                                        cvp 1 Reply Last reply Reply Quote 0
                                        • cvp
                                          cvp @DavinE last edited by

                                          @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?

                                          1 Reply Last reply Reply Quote 0
                                          • cvp
                                            cvp last edited by cvp

                                            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)
                                            
                                            DavinE 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Powered by NodeBB Forums | Contributors