snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法
我有一些python代碼,我想在一個100%的php代碼中使用。你知道我怎么轉換代碼嗎???我在轉換代碼時遇到問題,尤其是部分get bit和set bit。在
位掩碼通過snmp從交換機中讀取,掩碼表示交換機端口位于定義的vlan中。示例:
snmpget 1.3.6.1.2.1.17.7.1.4.3.1.2。返回一個十六進制字符串,如F100000000000000
每個十六進制數字表示交換機的4個物理LAN端口。本例中的第一個數字是F,表示二進制1111。這意味著1-4的每個端口都在vlan中。在
如果只需要端口1、2和4,掩碼將是1101,并且是十六進制D
代碼的目標是我想知道例如端口15是否在vlan中(getbitatposition),如果不是,我可以更改端口位置的位掩碼(setBitaPosition)。在
例如,端口15位于從左起的char 4中:
F=端口1-4
1=端口5-8
端口=0-9
0=端口13-16=>;十六進制0=>;二進制0000
要獲得vlan中的端口15,我必須將第3位從0000更改為0010,并將其轉換回hex=>;2。在
例如,新掩碼將為F102000000000000
python代碼:def convertHexCharacterToInt(char):
if (char.upper() == "A"):
return 10
elif (char.upper() == "B"):
return 11
elif (char.upper() == "C"):
return 12
elif (char.upper() == "D"):
return 13
elif (char.upper() == "E"):
return 14
elif (char.upper() == "F"):
return 15
else:
return (int(char))
def convertIntToHexCharacter(integer):
if (integer < 0 or integer > 15):
return "-1"
if (integer < 10):
return str(integer)
elif (integer == 10):
return "A"
elif (integer == 11):
return "B"
elif (integer == 12):
return "C"
elif (integer == 13):
return "D"
elif (integer == 14):
return "E"
elif (integer == 15):
return "F"
def __getBitAtPosition(position, bitmap):
for x in range(0, len(bitmap)):
mask = 0x8
for y in range(0, 4):
if (((x * 4) + y + 1) == position):
return (convertHexCharacterToInt(bitmap[x]) & mask) != 0
mask = mask >> 1
return None
def __setBitAtPosition(position, bitmap, value):
if (__getBitAtPosition(position, bitmap) == value):
return bitmap
charPosition = (position + 3) / 4 - 1
bitPosition = int(math.fabs((position - (charPosition * 4)) - 4))
bitValue = 2 ** bitPosition
fourBitValue = convertHexCharacterToInt(bitmap[charPosition])
newValue = None
if (value):
newValue = fourBitValue + bitValue
else:
newValue = fourBitValue - bitValue
newBitmap = bitmap[:charPosition] + convertIntToHexCharacter(newValue) + bitmap[charPosition + 1:]
return newBitmap
這是我第一次嘗試,但結果不一樣:
^{pr2}$
總結
以上是生活随笔為你收集整理的snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么选购路由器好与坏如何选路由器好坏
- 下一篇: 教你如何辨别电源质量好坏如何测试电脑电源