免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8253 | 回复: 14
打印 上一主题 下一主题

[其他] linux下打印机监控 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-25 16:12 |只看该作者 |倒序浏览
大家都知道windows下有HOOK API来支持打印机监控,linux下现在基本上都是通过CUPS来实现打印的,但是不知道如何监控打印,比如说根据文件的类型有选择的打印?

论坛徽章:
0
2 [报告]
发表于 2013-02-27 13:30 |只看该作者
自己顶一下,希望哪位大神能给点思路!

论坛徽章:
0
3 [报告]
发表于 2013-03-18 09:47 |只看该作者
回复 2# zhangqicpu


    你好,linux监控打印机你做出来了吗?我也要实现这个功能,一起交流啊。

论坛徽章:
0
4 [报告]
发表于 2013-03-18 16:34 |只看该作者
你的开发平台是什么啊!

论坛徽章:
0
5 [报告]
发表于 2013-04-19 14:00 |只看该作者
本帖最后由 雨夜流星 于 2013-04-19 14:02 编辑
zhangqicpu 发表于 2013-02-25 16:12
大家都知道windows下有HOOK API来支持打印机监控,linux下现在基本上都是通过CUPS来实现打印的,但是不知道 ...


你要监控打印机,首先你得了解整个打印的过程,然后再看看什么地方能挂钩,又能取到你想要的数据
CUPS简单的过程如下:



看红色数字标记部分:简单的过程如下
1、这里是通过命令行,或者管道方式传递数据
2、这里数据是通过socket方式传递给后台的CUPSD
    而在这一部分 过滤程序会把原始的数据转换成 ps格式
3、内核驱动将打印内容交给打印机

从上面的过程可以看出来,首先原始进程的信息可能是无法传递过去的,但是原始文件的描述信息是会被向下传递,
而数据,在第二部的过滤程序之前是原始数据,之后则被转换。

你想监控,那看你要监控什么内容,来选择在哪个部位做拦截了,
简单跟踪了打印的过程,似乎第一第二步,并没有发现什么特殊的操作或者函数,适合挂钩。
第三部内核lp这里,倒是适合挂钩的,但是这里取到的信息可能需要解析了,而且有可能原始信息会被在前边修改过,可能不准确。

大概就是这个样子了,你可以再看看,有进展可以给大家共享出来


论坛徽章:
0
6 [报告]
发表于 2013-04-19 15:24 |只看该作者
本帖最后由 h3216542010 于 2013-04-19 15:46 编辑

回复 4# zhangqicpu

ubuntu11.04   x86
   

论坛徽章:
0
7 [报告]
发表于 2013-04-19 16:16 |只看该作者
回复 5# 雨夜流星


   linux下打印好像不走lp驱动。

   我还没有发送消息权限

论坛徽章:
0
8 [报告]
发表于 2013-04-19 16:21 |只看该作者
回复 7# h3216542010


    我没在实体打印机上测,我装了个虚拟打印机测了一下,设置为并行口,是经过lp驱动的。

论坛徽章:
0
9 [报告]
发表于 2013-04-19 16:30 |只看该作者
回复 8# 雨夜流星


    我是使用网络打印机测试的。把lp驱动从系统中卸载掉,还能打印。

论坛徽章:
0
10 [报告]
发表于 2013-04-19 16:42 |只看该作者
本帖最后由 雨夜流星 于 2013-04-19 16:57 编辑

回复 9# h3216542010


    你要看CUPS的原理和实现,

“CUPS使用的是IPP(网络打印协议)标准,这是从HTTP中衍生出来的IETF协议。CUPS后台程序可以接受IPP请求,并且将其作为和客户端应用程序进行通信的主要方法。作为一个Internet协议,IPP使得在广域网上配置打印服务器变得非常容易。”

对应前面那个图的第二步,lpr和后台的CUPS是网络方式通信,即你的打印数据只要按照IPP协议发送到CUPS后台程序即可,对端只要支持IPP协议即可,未必一定在本地
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP