sysServices 转换

本文介绍了一个名为sysServices的值,该值用于表示网络设备所提供的服务类型。通过对不同位的检查,可以确定设备是否提供了如数据链路层、互联网层、端到端层及应用层等服务。文中还给出了一段代码示例,展示了如何根据sysServices的数值来解码并标识设备提供的服务层级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

• sysServices - 一个值,它可指出这个实体可能会提供的服务程序集。 此值是一个总和。这个总和值一开始会采用 0 这个值。然后它会根据在此节点执行异动各个阶层 L (在 1 至 7 的范围内), 将「2^(L - 1)」新增至总和值。例如,只执行路由功能的节点,它的值为 4 (2^(3-1))。 相对地,若节点是提供应用程序服务的主计算机,它的值就是 72 (2^(4-1) + 2^(7-1))。 注意,在通讯协议的 Internet 套件环境定义中,这些值的计算如下:
阶层 功能性
1 实体 (像是 repeater)
2 数据链路/子网 (像是网桥)
3 Internet (像是 IP 的支援)
4 端点至端点 (像是 TCP 的支援)
7 应用程序 (像是 SMTP 的支持)
注: 若是有包含 OSI 通讯协议的系统,则可能也要计算阶层 5 与 6。


public static NamedOID sysServices = new NamedOID("1.3.6.1.2.1.1.7.0","sysServices", false,OIDType.Special);

private void decodeServices(String s, L2Node node)
{
int i;
try {
i = Integer.parseInt(s);
} catch (Exception e) {
// TODO: handle exception
logger.error("decodeServices(String, L2Node)", e);
return;
}
String tmp = "";
if((i & 1) != 0)
{
tmp = tmp + "L2,";
}
if((i & 2) != 0)
{
tmp = tmp + "L2,";
}
if((i & 4) != 0)
{
tmp = tmp + "L3,";
node.setAttribute("Router","True");
}
if((i & 8) != 0)
{
tmp = tmp + "L4,";
}
if((i & 16) != 0)
{
tmp = tmp + "L5,";
}
if((i & 32) != 0)
{
tmp = tmp + "L6,";
}
if((i & 64) != 0)
{
tmp = tmp + "L7";
}

node.setAttribute("Layer",tmp);
}
[root@localhost ~]# snmpwalk -v 2c -c n0j0J2S5 192.168.2.139 SNMPv2-MIB::sysDescr.0 = STRING: ISM SNMP Agent SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.2011.2.91 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1079839882) 124 days, 23:33:18.82 SNMPv2-MIB::sysContact.0 = STRING: SNMPv2-MIB::sysName.0 = STRING: JB-3F-B3-Dorado SNMPv2-MIB::sysLocation.0 = STRING: JB-3F-B3 SNMPv2-MIB::sysServices.0 = INTEGER: 10 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::snmpInPkts.0 = Counter32: 1373593 SNMPv2-MIB::snmpOutPkts.0 = Counter32: 1373593 SNMPv2-MIB::snmpInBadVersions.0 = Counter32: 0 SNMPv2-MIB::snmpInBadCommunityNames.0 = Counter32: 0 SNMPv2-MIB::snmpInBadCommunityUses.0 = Counter32: 0 SNMPv2-MIB::snmpInASNParseErrs.0 = Counter32: 0 SNMPv2-MIB::snmpInTooBigs.0 = Counter32: 0 SNMPv2-MIB::snmpInNoSuchNames.0 = Counter32: 0 SNMPv2-MIB::snmpInBadValues.0 = Counter32: 0 SNMPv2-MIB::snmpInReadOnlys.0 = Counter32: 0 SNMPv2-MIB::snmpInGenErrs.0 = Counter32: 0 SNMPv2-MIB::snmpInTotalReqVars.0 = Counter32: 1353625 SNMPv2-MIB::snmpInTotalSetVars.0 = Counter32: 0 SNMPv2-MIB::snmpInGetRequests.0 = Counter32: 51931 SNMPv2-MIB::snmpInGetNexts.0 = Counter32: 1321675 SNMPv2-MIB::snmpInSetRequests.0 = Counter32: 0 SNMPv2-MIB::snmpInGetResponses.0 = Counter32: 0 SNMPv2-MIB::snmpInTraps.0 = Counter32: 0 SNMPv2-MIB::snmpOutTooBigs.0 = Counter32: 0 SNMPv2-MIB::snmpOutNoSuchNames.0 = Counter32: 19978 SNMPv2-MIB::snmpOutBadValues.0 = Counter32: 0 SNMPv2-MIB::snmpOutGenErrs.0 = Counter32: 0 SNMPv2-MIB::snmpOutGetRequests.0 = Counter32: 0 SNMPv2-MIB::snmpOutGetNexts.0 = Counter32: 0 SNMPv2-MIB::snmpOutSetRequests.0 = Counter32: 0 SNMPv2-MIB::snmpOutGetResponses.0 = Counter32: 1373617 SNMPv2-MIB::snmpOutTraps.0 = Counter32: 0 SNMPv2-MIB::snmpEnableAuthenTraps.0 = INTEGER: disabled(2) SNMPv2-MIB::snmpSilentDrops.0 = Counter32: 0 SNMPv2-MIB::snmpProxyDrops.0 = Counter32: 0这是华为存储的MIB库, 这里面哪些是设备KBytesPS的oid?
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值