我正在使用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告诉我打印作业的状态,打印作业的类型以及作业编号(如果有帮助的话)。
答案 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关联路径