如何用JAVA搜索到局域网中的打印机

深山老叔 2010-02-24 10:12:38
如题,如何用JAVA搜索局域网中存在的打印机
我试了下JAVA里面带的javax.print里面的PrintService ,可以查出,但那是已安装了打印驱动的


import javax.print.PrintService;
import javax.print.PrintServiceLookup;

public class PrintTest {

PrintService[] service = PrintServiceLookup.lookupPrintServices(null,null);

private void print(){

for(int i=0;i<service.length;i++){

System.out.println(service[i].getName());

}

}
public static void main(String[] args){
new PrintTest().print();
}

}


现在就是想,一台什么都没做过的电脑上,通过java程序搜索到局域网中存在的打印机。如何实现?
...全文
1217 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ironskinspirit 2011-06-09
  • 打赏
  • 举报
回复
你好,现在我也遇到了同样的问题,请问你后来是怎么解决的,谢谢。
估计我们都在做网络监控,可以交流一下吗?
QQ:258109763
简单好用 2010-12-16
  • 打赏
  • 举报
回复
这个不得不提到SNMP 所有打印机都实现了SNMP协议,你可以

1.先确认打印机所在的网段,把网段所有IP获取到。
2.通过向每个IP地址发送SNMP Get/GetNext等命令获取 pring-mib库中的节点信息,能获取到就是打印机,获取不到就是别的机器

推荐SNMP4J包。
musiclee 2010-03-01
  • 打赏
  • 举报
回复
所有的硬件有系统管理(好像是spooling技术来着?嘿),你只能想办法向系统申请资源,而又象java这种上层的语言,估计实现起来够呛。
netjourney 2010-03-01
  • 打赏
  • 举报
回复
god,你这都是什么问题阿?实用软件开发吗?
不懂了。
深山老叔 2010-03-01
  • 打赏
  • 举报
回复
人气呢?怎么没人帮忙啊
深山老叔 2010-02-24
  • 打赏
  • 举报
回复
多谢楼上解答,
那我现在要实现的是打开软件能扫描出局域网里所有的打印机,然后根据需要操作对应的打印机,是不是java不怎么好实现了?
hsf_1982 2010-02-24
  • 打赏
  • 举报
回复
PrintServiceLookup.lookupPrintServices只是查找已经在本机注册的打印机,包括本地打印机和网络上的打印机。而不是说查找“已安装了打印驱动的”。
对于Windows系统,所有已经添加的打印机均会注册到注册表中:HKEY_CURRENT_USER/Printers。
同样,对于UNIX系统而言,所有的外设包括打印机也会在系统中注册。
PrintServiceLookup.lookupPrintServices只是查找这些已在本机注册的打印机而已。

对于楼主的问题,我也无能为力。但Windows下有这样的服务Server。
支持计算机通过网络的文件、打印、和命名管道共享。

当然也不觉得这样的功能有什么实际意义。要使用网络上共享的打印机,一般都需要用户名、密码,也就是说你能获得的也是特定的打印机。那还不如按正常流程,先在本机注册,然后再使用,同时添加时尽量使用主机名,而不是IP,以降低对网络环境的依赖
小贝壳666 2010-02-24
  • 打赏
  • 举报
回复
打印机的硬件识别功能
或把打印机的驱动改成JAVA实现,且在你的主机上实现
深山老叔 2010-02-24
  • 打赏
  • 举报
回复
传说中的大侠们呢?快来帮帮忙啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧