我使用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给我打印作业的状态,它是什么类型的打印作业,如果这有帮助的话,作业编号。
发布于 2017-07-12 18:58:38
有一种方法可以使用SNMP,使用GetNext或GetBulk来接收与发送给它的打印作业相关联的打印机中的用户名。根据正在使用的打印机和与其关联的MIB,行走时使用的OID不同。例如:
我正在使用Xerox打印机,用于walk接收用户名的OID是: 1.3.6.1.4.1.253.8.51.5.1.1.4 这只适用于施乐打印机,因为253是与施乐相关的路径。
https://stackoverflow.com/questions/45015725
复制相似问题