用python批量添加保护站点
最近在测试的过程中,由于一个bug的复现需要添加1600个保护站点,手工添加谁知到要何年何月,因此想到了用python进行自动化批量添加保护站点!
具体代码如下:
#!/usr/bin/env python
#-*- coding: utf-8 -*- #author: WangZhu
#contact: isaac.zhu@dbappsecurity.com.cn
#dec: add 1600 save station and click service watch console lo_to folk
#data: write time is 2019/8/30 import time
from selenium import webdriver time_start = time.time()
#-*-*-**--*-*-*-批量生成url文件-*-*-*-*-*-*-*-*
def get_ip(number=10, start='1.1.1.1'):
file = open('ip_list.txt','w')
starts = start.split('.')
A = int(starts[0])
B = int(starts[1])
C = int(starts[2])
D = int(starts[3])
for A in range(A, 256):
for B in range(B, 256):
for C in range(256):
for D in range(D, 256):
ip = "%d.%d.%d.%d" % (A, B, C, D) if number>1:
file.write(ip + '\n')
number -= 1
elif number == 1: # 解决最后多一行回车问题
file.write(ip)
number -= 1
else:
file.close()
print(ip)
return
D = 0
C = 0
B = 0 #-*-*/-*-*/-*/-*-*-*创建1600个保护站点,并点击应用更改-*-*-*-*-*-*-*-
def createMoreStation():
time.sleep(2)
#打开ip地址列表文件
ipfile = 'ip_list.txt'
global iplist
iplist = {} with open(ipfile, 'r') as file_to_read:
for i in range(0, 2000):
lines = file_to_read.readline() # 整行读取数据
if not lines:
break
ip = lines.replace('\n', ' ')
iplist[i] = ip print(iplist[1]) #输入url,username,password,并点击登录
driver = webdriver.Chrome()
driver.get("https://192.168.26.211")
driver.maximize_window()
time.sleep(2)
driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("admin")
driver.find_element_by_id("user_pass").clear()
driver.find_element_by_id("user_pass").send_keys("adminadmin")
driver.find_element_by_id("user_login").click()
time.sleep(2)
# 点击配置
print("点击配置")
driver.find_element_by_xpath('/html/body/div/div[3]/ul/li[5]/a/span').click()
# 点击保护站点
print("添加保护站点")
time.sleep(1)
driver.find_element_by_xpath('/html/body/div/div[3]/ul/li[5]/ul/li[2]/a').click()
time.sleep(2)
print('添加保护站点')
for i in range(0,1610):
time.sleep(2)
#添加保护站点
driver.find_element_by_xpath('//*[@id="wrapper"]/div[4]/div[1]/div/div/div[4]/div[1]/div[2]/span[3]/a/span/span/label').click()
#输入站点名称
driver.find_element_by_id('webapp.name').send_keys(i)
#输入站点IP
driver.find_element_by_id('webapp.ip').send_keys(iplist[i])
#点击链接协议
driver.find_element_by_id('webapp-linkage-Protect1').click()
#点击保存
driver.find_element_by_xpath('//*[@id="wrapper"]/div[4]/div[1]/div/div/div[3]/div[11]/div[2]/table/tbody/tr/td[2]/a[1]/span/span/label').click()
print('关闭浏览器')
driver.close() #批量添加保证站点
get_ip(10000, '101.23.228.102')
time_end = time.time()
time = time_end - time_start
print('耗时%s秒' % time) createMoreStation()
print('执行结束')
注意:该文件在运行的过程中需要把谷歌驱动程序与主运行程序方在一起!
用python批量添加保护站点的更多相关文章
- python批量添加hexo文章封面
❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...
- Zabbix使用python批量添加主机及主机资产信息-从零到无
- - 时间:2020年11月10日 - - 作者:飞翔的小胖猪 前言: 使用zabbix作为基础环境的监控系统时,面对现网在用的2000+台把这些主机添加到zabbix监控中是一个问题,当然zabb ...
- Python批量添加库搜索路径
被win10 给坑了,换回Win7. 重装系统后,继续使用Python,Eclipse不用重装,pydev不用重装,只需重装Python2.7.6 X64 for win即可.然后,默认已安装的Pyt ...
- ArcGis Python脚本——批量添加字段
先看如何增加一个字段 函数:arcpy.AddField_management 语法:AddFields_management (in_table, field_description) 参数 说明 ...
- ansible和python的zabbix_api批量添加rsync服务的监控
一.正常的处理流程: 1.添加zabbix用户对rsync程序的sudo权限,且不需要输入密码 # visudo即在/etc/sudoers配置文件最后添加如下内容 Defaults:zabbix ! ...
- 「Python实用秘技04」为pdf文件批量添加文字水印
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...
- python mysql curros.executemany 批量添加
#添加的表结构字段分辨是(id,title,summary,visits,accountName,grabTime) #其中id,是int自增主键,在添加操作的时候,不需要对id进行操作 conn = ...
- zabbix利用api批量添加item,并且批量配置添加graph
关于zabbix的API见,zabbixAPI 1item批量添加 我是根据我这边的具体情况来做的,本来想在模板里面添加item,但是看了看API不支持,只是支持在host里面添加,所以我先在一个ho ...
- IIS环境下如何批量添加、修改、删除绑定的域名
IIS环境下如何批量添加和修改所绑定域名 1.关闭IISADMIN服务和W3SVC服务,可以从服务里面关闭,也可以直接执行命令:net stop iisadmin /y: 2.打开“C:\WINDOW ...
随机推荐
- C++智能指针总结
本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用. 为什么要使用智能 ...
- 第08组 Alpha冲刺(6/6)
队名:955 组长博客:https://www.cnblogs.com/cclong/p/11913269.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...
- 浅谈 HTTP协议
1.什么是http协议Hyper Text Transport Portocal(超文本传输协议)HTTP协议是应用层协议浏览器和web服务器通讯时遵守的约定互联网使用最多的协议提供超文本的传输服务通 ...
- gitosis管理员的密钥丢失解决办法
前提:win10默认安装配置完git:已经在linux服务器上配置完gitosis. 适用于:gitosis管理员的密钥丢失的情况 解决办法分三步: 1.git bash命令行下,将新的密钥中的公钥上 ...
- 自顶向下深入分析Netty(六)--Channel总述
自顶向下深入分析Netty(六)--Channel总述 自顶向下深入分析Netty(六)--Channel源码实现 6.1 总述 6.1.1 Channel JDK中的Channel是通讯的载体,而N ...
- Redis中删除过期Key的三种策略
转载自:http://blog.csdn.net/a_bang/article/details/52986935?locationNum=9&fps=1 项目中有个接口要频繁调用查询数据库中的 ...
- Kibana启动后外网访问不了
问题 Kibana启动后,使用外网访问 http://ip地址:5601 访问不了日志中最后显示 "statusCode":302 ,在控制台 curl http://localh ...
- 源码编译Redis Desktop Manager ---(转载)
精美文章转载: 版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议.转载请注明出处!原文链接:https://kany.me/20 ...
- Linux内核链表复用实现队列
有了前面Linux内核复用实现栈的基础,使用相同的思想实现队列,也是非常简单的.普通单链表复用实现队列,总会在出队或入队的时候有一个O(n)复杂度的操作,大多数采用增加两个变量,一个head,一个ta ...
- cisco 路由与ASA SSH 设置
转载于https://www.cnblogs.com/sun292393989/p/8980700.html 一 试验拓扑 二 Server配置 ①配置hostname和domain name 因为r ...