检查网络打印机

时间:2017-07-10 15:14:27

标签: c# printing snmp

我正在使用SNMPSharpNet从网络打印机接收陷阱以检查它是什么类型的作业(即打印,复制,扫描等)。我希望能够将每个打印作业的username送到网络打印机,但这只能通过callback从我读过的打印机中完成。

  • 如何通过网络打印机接收有关打印作业的其他信息?

我通过类似的套接字连接到应用程序中的打印机:

Socket socket = new Socket(SocketType.Dgram, ProtocolType.Udp);

string myIP;
IPEndPoint end;
EndPoint ep;
try
{
    myIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList[3].ToString();
    end = new IPEndPoint(IPAddress.Parse(myIP), 162);
    ep = (EndPoint)end;
    socket.Bind(ep);
}
catch (Exception e)
{
    Console.WriteLine("Exception: " + e.Message);
}

我为每个作业收到的OID告诉我打印作业的状态,打印作业的类型以及作业编号(如果有帮助的话)。

1 个答案:

答案 0 :(得分:0)

有一种方法可以使用GetStxt或GetBulk来使用SNMP Walk来接收与发送给它的打印作业相关联的打印机中的用户名。步行中使用的OID因所使用的打印机和与之关联的MIB而异。例如:

  

我使用的是Xerox打印机,用于walk的接收用户名的OID是:     1.3.6.1.4.1.253.8.51.5.1.1.4

     

这仅适用于Xerox打印机,因为253是Xerox关联路径