Skip to content Skip to sidebar Skip to footer

Example Of Pysmb

Could you give me an example of using pysmb library to connect to some samba server? I've read there's class smb.SMBConnection.SMBConnection(username, password, my_name, remote_nam

Solution 1:

I have been using pysmb for network shares enumeration lately, and found that it is not so easy to find good / complete examples. I'd refer you to a small script that I wrote for enumerating smb shares with pysmb: https://github.com/n3if/scripts/tree/master/smb_enumerator

For the sake of completeness, also, I post here the code snippet that accomplishes the connection and enumeration:

from smb import SMBConnection

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 sharesprint('Shares on: ' + system_name)

        for i inrange(len(Response)):  # iterate through the list of sharesprint("  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 inrange(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')

Solution 2:

The SMBConnection class will allow you to access the files on the remote Samba server in blocking mode.

To retrieve the list of the files in a shared folder on the remote server,

from smb.SMBConnection import SMBConnection
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', '/')

The returned filelist will be a list of SharedFile instances.

More examples can be found in the tests/SMBConnectionTests folder in the pysmb source package.

Solution 3:

For example you want to store a file via pysmb same as this:

from smb.SMBConnection import SMBConnection

file_obj = open('image.png', 'rb')

connection = SMBConnection(username=username,
                           password=password,
                           remote_name=remote_name,  # It's net bios  name
                           domain=domain,
                           use_ntlm_v2=True)

connection.connect(ip=host)  # The IP of file server

connection.storeFile(service_name=service_name,  # It's the name of shared folder
                     path=path,
                     file_obj=file_obj)
connection.close()


Post a Comment for "Example Of Pysmb"