日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法

發(fā)布時(shí)間:2023/12/3 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我有一些python代碼,我想在一個(gè)100%的php代碼中使用。你知道我怎么轉(zhuǎn)換代碼嗎???我在轉(zhuǎn)換代碼時(shí)遇到問題,尤其是部分get bit和set bit。在

位掩碼通過snmp從交換機(jī)中讀取,掩碼表示交換機(jī)端口位于定義的vlan中。示例:

snmpget 1.3.6.1.2.1.17.7.1.4.3.1.2。返回一個(gè)十六進(jìn)制字符串,如F100000000000000

每個(gè)十六進(jìn)制數(shù)字表示交換機(jī)的4個(gè)物理LAN端口。本例中的第一個(gè)數(shù)字是F,表示二進(jìn)制1111。這意味著1-4的每個(gè)端口都在vlan中。在

如果只需要端口1、2和4,掩碼將是1101,并且是十六進(jìn)制D

代碼的目標(biāo)是我想知道例如端口15是否在vlan中(getbitatposition),如果不是,我可以更改端口位置的位掩碼(setBitaPosition)。在

例如,端口15位于從左起的char 4中:

F=端口1-4

1=端口5-8

端口=0-9

0=端口13-16=>十六進(jìn)制0=>二進(jìn)制0000

要獲得vlan中的端口15,我必須將第3位從0000更改為0010,并將其轉(zhuǎn)換回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

這是我第一次嘗試,但結(jié)果不一樣:

^{pr2}$

總結(jié)

以上是生活随笔為你收集整理的snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。