匿名访问查看服务器samba用户名实现smbclient -L
一、背景
使用smbj实现samba有个问题,不能先列出服务器的所有samba账户。当面对某些场景,例如先列出局域网所有的samba账户,再让用户选择其中一个,然后让用户输入密码,完成登录再浏览文件。samba代码交叉编译出android平台可以用的smbclient非常困难,很难实现像LINUX平台smbclient -L这样的列出结果。
二、使用jcifs与smbj联合解决
可以使用老版本jcifs库先匿名访问服务器。列出所有用户后,根据用户的操作(选择一个账户,并输入密码)。但是jcifs仅支持samba 1.0。之后再使用支持较高版本的smbj接口完成浏览。
jcifs匿名访问代码:
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;String remoteUrl= "smb://10.10.10.1";SmbFile smbFile = new SmbFile(remoteUrl, NtlmPasswordAuthentication.ANONYMOUS);for(SmbFile smbfile: smbFile.listFiles("*")){String username = smbfile.getName();System.out.println("user name: " + username);}
上面的username可以存成一个列表,滤掉带$的打印机等用户名,每个username可以作为参数,加上密码,配合smbj代码完成单个账户的访问:
SmbConfig config = SmbConfig.builder().withTimeout(120, TimeUnit.SECONDS).withTimeout(120, TimeUnit.SECONDS) // 超时设置读,写和Transact超时(默认为60秒).withSoTimeout(180, TimeUnit.SECONDS) // Socket超时(默认为0秒).build();SMBClient client = new SMBClient(config);Connection connection = null;try {connection = client.connect("10.10.10.1");} catch (IOException ioException) {ioException.printStackTrace();}AuthenticationContext ac = new AuthenticationContext("username", "password".toCharArray(), "10.10.10.1");assert connection != null;Session session = connection.authenticate(ac);DiskShare share = (DiskShare) session.connectShare("username");//如果要访问用户username目录里面的仅share文件夹,则// share.list(null, "*.*") 改成 share.list("share", "*.*")//share.list(null, "*.*")表示该用户名下全部文件和文件夹for (FileIdBothDirectoryInformation f : share.list(null, "*.*")) {String fname = f.getFileName();System.out.println("File : " + fname);}
其他:
需要使用1.X版本的jcifs.jar.以下链接的jcifs亲测完美支持。下载jar后,把jcifs-1.3.18.3.jar放在代码build.gradle同级新建的文件夹libs中。模块的build.gradle里面加上包的导入:
implementation files('libs/jcifs-1.3.18.3.jar')
jcifs-1.3.18用于android访问samba服务器。支持匿名访问,实现smbclient-L列出服务器用户名-Android文档类资源-CSDN文库
匿名访问查看服务器samba用户名实现smbclient -L相关推荐
- ftp邮箱里的文件无法连接服务器地址,匿名访问ftp服务器 电子邮件地址
匿名访问ftp服务器 电子邮件地址 内容精选 换一换 如果你正在运行Confluence6.8或者后续版本,邀请你的小组开始使用Confluence服务器的移动应用,可以使用下面的方法.访问Confl ...
- tor 匿名访问_Tor:匿名者变得更好或更糟
tor 匿名访问 为什么要使用Tor? (Why use Tor?) Transport Layer Security (TLS) already provides privacy by encryp ...
- linux 查看服务器信息命令
1.查看服务器连接数 netstat -na|wc -l 1.1查看服务器的进程 netstat -nplt 1.2根据端口查看服务进程 netstat -an|grep 8081 2.查看服务器有效 ...
- android layout(l, t, r, b);,服务器里的a,t,l,r,b是什么意思? Android编程中关于layout(l,t,r,b)函数的问题...
导航:网站首页 > 服务器里的a,t,l,r,b是什么意思? Android编程中关于layout(l,t,r,b)函数的问题 服务器里的a,t,l,r,b是什么意思? Android编程中关于 ...
- Red Hat 6.5 Samba服务器的搭建(匿名访问,免登录)
搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录. 现在介绍如何在红帽6.5系统中搭建Samba服务. 搭建Samba服务之前,yum源必须配置好,本地源和 ...
- Linux服务器之Samba匿名访问配置
摘要:Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共 ...
- Linux与Windows共享文件夹之samba的安装与使用 资源管理器直接查看服务器文件
安装Samba sudo apt-get install samba 创建共享文件夹 // 创建的目录即之后能够在Windows主机上直接访问的目录. // 例如:在用户gzd的主目录下新建share ...
- 【内网穿透服务器】使用Frp外网访问内网FTP服务器(以访问内网samba服务为例)
使用Frp外网访问内网FTP服务器(以访问内网samba服务为例) FTP是基于TCP的服务,使用两个端口,命令端口和数据端口,命令端口是21,数据端口在主动模式下为20,在被动模式随机分配. FTP ...
- samba服务器传输大量文件,smbclient操作命令,服务器文件传输
摘要:smaba,linux,windows,smbclient smbclient概述 smbclient命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源.sam ...
最新文章
- ajax调取json接口,通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上
- 分析B站10万条弹幕后,发现了歪嘴战神的终极奥义!
- HiveSQL窗口函数
- 8、非空约束(NOT NULL)
- 从Xamarin.Essentials谈Xamarin库的封装
- wince ./configure
- 哪些数据类型能使用切片操作python_Python学习之路「16」非数字数据类型-切片-slice...
- ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(四)——整合asp.net mvc...
- 从yield关键字看IEnumerable和Collection的区别
- 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
- 51nod 1067 Bash游戏 V2 博弈
- VHDL_EDA课设_八音电子琴
- Android实现图片(拍照+相册)上传功能
- js获取当前域名的方法
- 转载:如何使用RFT自动打开IE
- 大疆云台和华为P30_全面分析曝光大疆云台3和mobile有没有区别?哪个好?优缺点内幕透露...
- 周末作业-循环练习题(2)
- 如何破坏双亲委派模型
- 宕机处理:Kubernetes集群高可用实战总结
- c语言上交源代码怎么交啊,C语言问题在线等啊作业提交上交的的内容必须由以下两个部分组成,缺 爱问知识人...
热门文章
- 《Kaggle Histopathologic Cancer Detection癌症图像分类比赛》之Keras/Generator实现
- 平民开发者利器:FileMaker助力AA健身高效管理工作室
- 浪潮云跻身中国政务大数据管理平台市场领导者位置
- 9款中药养生茶 保健祛感冒
- 开关灯效果HTML,H5+CSS3打开关闭灯泡开关动画特效
- Springboot测试过程中遇到的404 not found
- 闭眼前道一声晚安...
- Linux Skype 4.3 下载地址
- python集合的元素可以是_python集合入门须知
- 【iOS内购支付】Uniapp拉起苹果内购支付注意事项、实现步骤以及踩过的坑(手把手教程)