snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法
发布日期:2021-10-31 15:52:22 浏览次数:4 分类:技术文章

本文共 1921 字,大约阅读时间需要 6 分钟。

我有一些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}$

转载地址:https://blog.csdn.net/weixin_39987847/article/details/115776719 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:使用matlab内存不足,Matlab内存不足问题(Out of memory)
下一篇:shu函数php,【函数分享】每日PHP函数分享(2021-3-3)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月17日 04时18分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

oracle 数据回滚,恢复误删的数据,闪回表功能的使用 2019-04-27
mac 系统新功能体验-根据时间变化的动态桌面背景,看壁纸演绎风景大片中的日出与日落 2019-04-27
ADB的安装和使用教程,小米手机连接adb实例演示 2019-04-27
windows 关闭粘滞键-解决Microsoft Remote Desktop输入自动变为快捷键问题 2019-04-27
测试工具 - Postman接口测试入门使用手册,Postman如何进行数据关联、自动更新cookies、简单编程 2019-04-27
PyQt5 技术篇-调用字体对话框(QFontDialog)获取字体,控件设置字体。 2019-04-27
Python 技术篇-将python项目打包成exe独立运行程序,pyinstaller库打包python代码实例演示 2019-04-27
Geany 权限问题:"Error opening file ... : permission denied.",原因及解决办法。 2019-04-27
CSDN博客主页增加赞赏码收钱模块,高端大气上档次! 2019-04-27
PyQt5 技术篇-调用文件对话框获取文件、文件夹路径。文件对话框返回选中的多个文件路径 2019-04-27
SSM 整合实现 增删改查、PageHelper 实现分页 2019-04-27
[增删改查] Lucene 5 索引 CRUD 2019-04-27
使用 SpringBoot 写增删改查接口 2019-04-27
初步使用 JFreeChart 生成报表与感受 2019-04-27
前端使用 BootStrap 写一些后台常用的界面 2019-04-27
使用 SpringBoot + Ckeditor 富文本编辑器、图片上传 2021-06-30
全栈式使用 SpringBoot + SpringSecurity 做登录认证 2021-06-30
[Java爬虫] 使用 Jsoup + HttpClient 爬取网页图片 2021-06-30
使用 Git 并借助 Eclipse + Coding 合作开发项目 2021-06-30
[Java爬虫] 使用 Xpath + HtmlUnit 爬取网页基本信息 2021-06-30