自动获取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 ...
随机推荐
- React & Special Props Warning
React & Special Props Warning key & ref demo index.js:1 Warning: Comment: key is not a prop. ...
- 图解 Webpack 4.x 热更新原理
图解 Webpack 4.x 热更新原理 Webpack HMR ️ module.hot & module.hot.accept if (module.hot) { module.hot.a ...
- web components & publish custom element & npm
web components & publish custom element & npm https://www.webcomponents.org/publish Polymer ...
- Chrome debug & string to object & copy format json
Chrome debug & string to object & copy format json // save as global variable copy(JSON.stri ...
- 解决异常: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate failed: Cannot instantiate object of type tk.mybatis.mapper.generator.MapperPlugin -> [Help 1]
mybatis-generator整合通用mapper使用generator插件生成model.mapper时报错: 产生以下错误:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 解决办法: ...
- Docker私有仓库的搭建与使用
目录 Docker搭建私有仓库 一.搭建registry私有仓库 1.拉取私有仓库registry镜像 2.启动私有仓库容器 3.修改deamon.json 4.重启docker 5.启动regist ...
- Docker-compose编排微服务顺序启动
一.概述 docker-compose可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序.docker-comp ...
- gitlab和gitlab项目迁移
一.概述 原gitlab 操作系统:centos 6.9 版本:GitLab 社区版 10.5.1 安装方式:yum 新gitlab 操作系统:centos 7.6 版本:GitLab Communi ...
- Spring Boot 2.x基础教程:使用MongoDB
前段时间因为团队调整,大部分时间放在了团队上,这系列的更新又耽误了一下.但既然承诺持久更新,那就不会落下,今天开始继续更新这部分的内容! 过了年,重申一下这个系列的目标:目前主要任务就是把Spring ...
- Java并发编程基础三板斧之Semaphore
引言 最近可以进行个税申报了,还没有申报的同学可以赶紧去试试哦.不过我反正是从上午到下午一直都没有成功的进行申报,一进行申报 就返回"当前访问人数过多,请稍后再试".为什么有些人就 ...