自动获取IMC系统所有网络设备资产信息
1 #coding=utf8
2
3 """
4 CMDB接口调用
5 """
6 import csv
7 import json
8 import time
9
10 import requests
11 from requests.auth import HTTPDigestAuth
12
13 class getAPIInfo(object):
14
15 def __init__(self,api_url,username,password):
16 self.headers = {'Accept': 'application/json'}
17 self.base_url = 'http://xx.xx.xx.xx:8080'
18 self.api_url = api_url
19 self.username = username
20 self.password = password
21
22 def get_info(self):
23 headers = self.headers
24 base_url = self.base_url
25 api_url = self.api_url
26 username = self.username
27 password = self.password
28
29 authhandler = HTTPDigestAuth(username,password)
30 resp = requests.get(base_url + api_url, auth=authhandler, headers=headers)
31 content = json.loads(resp.text)
32 return content
33
34 class writeToCsv(object):
35 def __init__(self,data,info):
36 self.data = data
37 self.info = info
38
39 def write_to_csv(self):
40 rows = self.data
41 info = self.info
42 csvfile = "设备信息列表" + info + time.strftime('_%Y%m%d%H%M%S', time.localtime(time.time())) + ".csv"
43 # print(csvfile)
44 # 创建文件对象
45 f = open(csvfile, 'w')
46
47 # 通过文件创建csv对象
48 csv_write = csv.writer(f)
49
50 # writerow: 按行写入, writerows: 是批量写入
51 # 写入数据 取列表的第一行字典,用字典的key值做为头行数据
52 csv_write.writerow(rows[0].keys())
53
54 # 循环里面的字典,将value作为数据写入进去
55 for row in rows:
56 csv_write.writerow(row.values())
57
58 # 关闭打开的文件
59 f.close()
60 return "读写完成:"+csvfile
61
62 if __name__ == '__main__':
63 # # 1 - 查询设备信息列表 /plat/res/device
64 api_url = "/imcrs/plat/res/device?size=1000"
65 info = "device"
66
67 # 2-获取AC相关信息http://ip:8080/imcrs/wlan/acInfo/queryAcBasicInfo
68 # api_url = "/imcrs/wlan/acInfo/queryAcBasicInfo"
69 # info = 'acBasicInfo'
70
71 # 3 -查询Ap相关信息GET /imcrs/wlan/apInfo/queryApBasicInfo
72 # api_url = "/imcrs/wlan/apInfo/queryApBasicInfo"
73 # info = 'apBasicInfo'
74
75 # #4-查询设备类型列表/plat/res/category
76 # api_url = "/imcrs/plat/res/category"
77
78 # #5-查询资产列表/netasset/asset
79 # api_url = "/imcrs/netasset/asset"
80
81 # 获取API接口信息
82 username = '******'
83 password = '******'
84 # 1- 获取api接口信息
85 req = getAPIInfo(api_url,username,password)
86 content = req.get_info()
87 # print(content)
88
89 # #获取设备json数据
90 data = content[info]
91
92 # 2-调用写入csv类
93 write = writeToCsv(data,info)
94 resp = write.write_to_csv()
95 print(resp)
自动获取IMC系统所有网络设备资产信息的更多相关文章
- JAVA如何利用Swiger获取Linux系统电脑配置相关信息
最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...
- oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
需求: 插入一条记录,要求自动获取当前日期,并且格式为(YYYY-MM-DD HH24:MI:SS) sql语句: insert into SY_COMM_CONFIG(CONF_ID, S_MTIM ...
- Delphi 10.3版本获取windows系统版本和CPU信息
procedure TForm1.Button1Click(Sender: TObject); var mm:TRegistry; cpu:string; begin mm:=TRegistry.Cr ...
- Appium自动获取 Android 设备 id 和包名等信息(python)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhusongziye/article/d ...
- C/C++获取操作系统、CPU、内存信息(windows和linux)
有时候需要在工程里面获取一些系统或者硬件的信息,比如系统版本,cpu,内存,显卡,硬盘等,作为后续软件功能判断的依据,甚至参与性能算法自适应建模 Windows 操作系统和内存信息在windows下通 ...
- 使用Python获取Linux系统的各种信息
哪个Python版本? 当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码 ...
- UWP 应用获取各类系统、用户信息 (2) - 商店授权信息、零售演示模式信息、广告 ID、EAS 设备信息、硬件识别信息、移动网络信息
应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...
- java工作流系统表单自动 获取数据
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 什么是数据自动获 ...
- 答:SQLServer DBA 三十问之六:Job信息我们可以通过哪些表获取;系统正在运行的语句可以通过哪些视图获取;如何获取某个T-SQL语句的IO、Time等信息;
6. Job信息我们可以通过哪些表获取:系统正在运行的语句可以通过哪些视图获取:如何获取某个T-SQL语句的IO.Time等信息: 我的MSDB数据库中有全部的表: sys.all_columns,s ...
随机推荐
- Web API 设计
Web API 设计 The Design of Web APIs free online ebook https://www.manning.com/books/the-design-of-web- ...
- Web 安全 & cookies & HttpOnly
Web 安全 & cookies & HttpOnly cookie HttpOnly 禁止 js 读取 cookie 的方法 HttpOnly 实现原理 document.cooki ...
- no code form generator
no code form generator 无代码,表单生成器 H5 Drag & Drop UI => codes click copy demo https://www.forms ...
- vue & components & props & methods & callback
vue & components & props & methods & callback demo solution 1 & props & data ...
- TS type different String / string
TS type different String / string String / string https://stackoverflow.com/questions/14727044/types ...
- 鸿蒙开源第三方组件——进度轮ProgressWheel
目录:1.前言2.背景3.组件功能展示4.Sample解析5.Library解析6.作者系列文章合集 前言 基于安卓平台的进度轮组件ProgressWheel(https://github.com/A ...
- vscode好用插件总结
做个记录:https://blog.csdn.net/xishining/article/details/90819481 1.Auto Rename Tag --自动重命名成对的HTML标记.假如你 ...
- Go | Go 结合 Consul 实现动态反向代理
Go 结合 Consul 实现动态反向代理 代理的核心功能可以用一句话概括:接受客户端的请求,转发到后端服务器,获得应答之后返回给客户端. Table of Contents 反向代理 实现逻辑 Go ...
- 学习java之基础语法(一)
学习java之基础语法(一) 基本语法 编写 Java 程序时,应注意以下几点: 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说 ...
- CSS:CSS基础
和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言.它是一门样式表语言,这也就是说人们可以用它来选择性地为 HTML 元素添加样式. CSS规则集 选择器(Selector):元素的名 ...