pysmb库SMBConnection的使用

python 访问带密码的共享文件夹 早前,就碰到【访问带密码的共享文件夹】的任务需求,一直找不到解决的方法。这次,又碰到了,搜索半天,终于找到了方法路子,原来用pysmb模块即可。pysmb是一个使用Python 实现的 SMB/CIFS ,支持 Windows 和 Linux 机器间的文件共享。 阅读详情

使用前提:
1.两台电脑处于局域网或者外网,即链接相同wifi
2.在其中一台电脑中,右击想要共享的文件夹,属性—>共享—>按步骤操作。
3.共享成功后,打开 此电脑 ,可在网络位置下面查看。
参考链接:
https://blog.csdn.net/Qwertyuiop2016/article/details/129367401

配置后代码:

import os

from smb.SMBConnection import SMBConnection


class SmbClient:
    def __init__(self, server_ip, username, password, my_name, remote_name, share_file, file_path, csv_file_name):
        self.server_ip = server_ip  # 共享目录主机IP地址 "192.168.1.16"
        self.username = username  # 共享目录主机用户名 "admin"
        self.password = password  # 共享目录主机密码 "qwe123"
        self.my_name = my_name  # 本机计算机属性中域名 "WIN-9U4BSQ3N4L8"
        self.remote_name = remote_name  # 远端共享文件夹计算机名 "DESKTOP-HJ9DB5A"
        self.share_file = share_file  # 共享文件夹名称 'el_result'
        self.file_path = r'%s' % file_path  # 要储存的位置 r'D:\aaaaaaa'
        self.csv_file_name = csv_file_name  # 要获取的csv文件名 '全部结果.csv'

        self.connect()
        self.download()
        self.close()

    def connect(self):
        '''连接远程服务器'''
        self.conn = SMBConnection(self.username, self.password, self.my_name, self.remote_name,
                                  is_direct_tcp=True)  # is_direct_tcp=True,默认为当direct_tcp=True时,port需要445。当它是False时,端口应该是139
        assert self.conn.connect(self.server_ip, 445)

    def download(self):
        '''下载远程文件夹到本地'''
        share_list = self.conn.listShares()
        for share in share_list:
            if share.isSpecial is True:  # 排除无用的共享文件
                continue
            share_file_name = share.name  # el_result
            shared_file_list = self.conn.listPath(share_file_name, '/')
            for shared_file in shared_file_list[2:]:  # 第0个和第一的为'.','..'
                date_dir_name = shared_file.filename  # 2023.03.03
                file_name = os.path.join(self.file_path, self.remote_name,
                                         date_dir_name)  # D:\\aaaaaaa\\DESKTOP-HJ9DB5A\\2023.03.03
                if not os.path.exists(file_name):
                    os.makedirs(file_name)  # 创建文件夹
                csv_list = self.conn.listPath('el_result', f'/{date_dir_name}')
                for csv in csv_list[2:]:  # 第0个和第一的为'.','..'
                    csv_name = csv.filename  # 全部结果.csv
                    if csv.filename == self.csv_file_name:
                        with open(os.path.join(file_name, csv_name), 'wb') as file:
                            self.conn.retrieveFile(f'el_result', f'/{date_dir_name}/{csv_name}', file)
                            # print('已经下载一条数据')
                    else:
                        continue

    def close(self):
        '''关闭远程服务器'''
        self.conn.close()


if __name__ == '__main__':
    server_ip = "192.168.xx.xx"  # 共享目录主机IP地址
    username = "admin"  # 本机用户名
    password = "123456"  # 本机密码
    my_name = "WIN-9U4BSQxxxxx"  # 计算机属性中域名
    remote_name = "DESKTOP-HJ9xxxxA"  # 远端共享文件夹计算机名
    share_file = 'xx_result'
    file_path = r'D:\aaaaaaa'
    csv_file_name = '全部结果.csv'

    smb = SmbClient(server_ip, username, password, my_name, remote_name, share_file, file_path, csv_file_name)

内网渗透瑞士军刀-impacket工具解析(四) 前两篇我们介绍了impacket中对DCERPC协议的内容,今天我们对Windows网络中另一个应用层协议的内容进行介绍,在Windows网络中最常用的协议就是SMB协议了,SMB(Server Message Block) 是一种用于在计算机网络上共享文件、打印机和其他资源的协议。在impacket中基于SMB协议主要实现远程文件访问及DCERPC调用两大作用,在SMBv1实现了标准的SMB认证,SMBv1和SMBv2中都实现了NTLM和Kerberos的拓展认证方式。 阅读详情

相关推荐

python3访问samba共享目录

懒得说啥了,直接上干货 你需要修改连接ip地址,如果有用户名密码填进去,如果端口不是445改了 依赖pip3 install pysmb pyasn1 需要先安装了 我只是遍历目录,排序显示,要上传下载文件的方法自己去百度一大堆 如果有可能以后考虑做成个客户端界面。。。pyqt5 +pyinstaller 生成单个可执行文件 exe 使用pyinstaller -F xx.py (需要安装 pip3 install pyinstaller) # -*- coding: utf-8...

firseve的专栏 6771

pysmbc:适用于Python的libsmbclient绑定

适用于Python的SMB绑定 这些Python绑定旨在包装libsmbclient API。 先决条件 当前需要libsmbclient 3.2.x或更高版本。 Ubuntu示例: # sudo apt install build-essential pkg-config smbclient libsmbclient libsmbclient-dev python-dev 或者根据您的需要使用python3-dev而不是python-dev 。 建造 # make 测试 要在tests /中运行Python测试,您需要python-nose参见鼻子文档 要运行所有测试,请执行 # nosetests 要仅运行一项测试,请使用 # nosetests file.py 要有选择地运行测试方法,将输出打印到控制台 # nosetests -vs test_context.py

Python SMB实战:pysmb-1.1.20的使用与功能

随着信息技术的发展,网络文件共享已成为企业日常运营不可或缺的一部分。SMB(Server Message Block)协议,作为Windows网络中一种广泛使用的技术,提供了文件共享、打印以及其他服务的访问机制。在Python开发中,SMB让开发者能够轻松与SMB服务器交互,而无需深入了解底层协议细节。本文将介绍Python使用SMB协议的,特别是pysmb,探讨如何通过Python脚本实现对SMB资源的操作。这不仅提高了工作效率,还让自动化管理网络共享资源成为可能。

weixin_33245447的博客 1764

SMBconnection使用

class SMBConnection(SMB):   //定义类     def __init__(self, username, password, my_name, remote_name, domain = '', use_ntlm_v2 = True, sign_options = SIGN_WHEN_REQUIRED, is_direct_tcp = False)://初始化

bigtiger1648的专栏 5683

使用samba共享文件

用过mount命令挂载windows目录到linux,这个方法有几个问题: 会出现符号链接的问题(windows无法创建符号链接) windows通过git拉项目下来,然后通过共享目录挂载到linux,结果在linux项目运行出错原因:由于windows下git设置了autocrlf true(自动转换lf为crlf),然后共享目录到linux,linux下读到的配置文件的是crlf,不是lf,结果解析字符串出错(const char* user="root\r"),多了个'\r' 解决方法:使用do.

回头太难 1076

python pysmb 使用windows共享服务

【代码】python pysmb 使用windows共享服务。

sky0Lan的博客 2658

pysmb 使用

安装pysmb pip install pysmb 我安装的是1.2.7 使用pysmb

HYBTSJ的博客 3337

python3 访问windows共享目录

python3 访问windows共享目录 1、安装pysmb包 pip install pysmb 2、连接共享目录 #!/usr/bin/env python3 # -*- coding:utf-8 -*- from smb.SMBConnection import SMBConnection server_ip = "10.0.0.1" #共享目录主机IP地址 username = "xxxxx"

jws28268的博客 6159

Linux访问Windows的共享目录,pysmb(参数remote_name定义)

方案一 net start 此命令只在Windows下面可用 方案二 sudo mount -t cifs -o username=administrator,password=password //remote_share_server_ip/share_dir ./data 这条命令必须使用root权限,对于不能使用root权限的应用无法实现。没有sudo会报错: mount: only root can use "--options" option 方案三 Pythonpysmb def check

致知的博客 3426

linux smb 所有者,python-3.x - 在Linux上使用python从smb共享中获取文件的所有者。 - SO中文参考 - www.soinside.com...

这简直不是一件小事,可惜答案并不像我希望的那样简单。如果以后有人会被这个同样的问题困扰,我就把这个答案贴出来,但希望也许有人能早点贴出更好的解决方案来为了找到主人,我用 本及其实例:from smb.SMBConnection import SMBConnectionconn = SMBConnection(username='', password='', domain=', my_name=...

weixin_32862641的博客 339

Python操作Windows共享文件夹

指定可以访问用户的权限,默认当前用户和管理员有可读可写的权限。访问时会要求输入用户名密码,也可以增加Everyone,这样就可以不指定用户密码,Everyone默认权限是可读,可以自行修改。比如共享E盘,我的电脑右键E盘,选择共享一栏->高级共享-勾选共享,设置权限即可。如果不需要Everyone的访问,可以不修改权限。第一个参数是共享文件夹名称,也就是上面的Software。获取文件或文件夹信息,比如创建时间,文件大小,修改时间等。第二个参数是要删除的文件,可包含通配符。目录,第二个参数就填。

Qwertyuiop2016的博客 4885

共享文件夹上传数据

Windows共享共享文件夹随便选择一个文件夹,然后右键 授予访问权限->特定用户指定可以访问用户的权限,默认当前用户和管理员有可读可写的权限。访问时会要求输入用户名密码,也可以增加Everyone,这样就可以不指定用户密码,Everyone默认权限是可读,可以自行修改共享磁盘比如共享E盘,我的电脑右键E盘,选择共享一栏->高级共享-勾选共享,设置权限即可。如果不需要Everyone的访问,可以不修改权限ubuntu挂载。

weixin_39845249的博客 414

python操作samba

最近在部署完xxl-job后,陆续将一些日常性执行的python脚本迁移到上面去;其中部分脚本涉及到对samaba的操作,先后尝试了pysmb、fs.smbfs、pysmbclient pysmb  安装:sudo pip2 install pysmb 使用 from smb.SMBConnection import * class SMBClient(object): ''' ...

weixin_30301449的博客 3864

Python 如何使用访问Windows共享文件夹

通过SMB(Server Message Block)协议,轻松连接到Windows共享文件夹,并列举其中的文件与文件夹。此外,我们还将简要介绍如何下载和上传文件,以及如何处理可能遇到的连接错误。成功连接到Windows共享文件夹,并浏览其中的文件与文件夹。同时,您还学会了如何下载和上传文件,并掌握了处理连接错误的技巧。您需要知道共享文件夹所在服务器的IP地址、NetBIOS名称(或DNS名称)、共享文件夹名称以及您的登录凭据(用户名和密码)。连接成功后,即可列出共享文件夹中的文件与文件夹。

蜡笔小新星的博客 2137

Python 操作samba文件服务器

为什么80%的码农都做不了架构师?>>> ...

weixin_33747129的博客 2625

python 实现smb共享服务器的文件(夹)上传下载

【代码】python 实现smb共享服务器的文件(夹)上传下载。

qq_45444679的博客 3845

[转]转的别人的一篇文章:python模块之samba

本文为记录Python下载samba里的文件的代码: 1 2 3 4 5 6 7 8 9 10 from smb.SMBConnection import SMBConnection def get_script_file():     conn = SMBConnection('an

asan229723087的专栏 1758

python tcl smb_python操作samba

最近在部署完xxl-job后,陆续将一些日常性执行的python脚本迁移到上面去;其中部分脚本涉及到对samaba的操作,先后尝试了pysmb、fs.smbfs、pysmbclientpysmb安装:sudo pip2 install pysmb使用from smb.SMBConnection import *class SMBClient(object):'''smb连接客户端'''user_n...

weixin_39614109的博客 446
上一篇: os.path的用法
下一篇: PyYAML的使用---使用xx.yml充当配置文件
你很棒滴
博客等级 码龄6年 33粉丝 94原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值