最近在测试的过程中,由于一个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批量添加保护站点的更多相关文章

  1. python批量添加hexo文章封面

    ❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...

  2. Zabbix使用python批量添加主机及主机资产信息-从零到无

    - - 时间:2020年11月10日 - - 作者:飞翔的小胖猪 前言: 使用zabbix作为基础环境的监控系统时,面对现网在用的2000+台把这些主机添加到zabbix监控中是一个问题,当然zabb ...

  3. Python批量添加库搜索路径

    被win10 给坑了,换回Win7. 重装系统后,继续使用Python,Eclipse不用重装,pydev不用重装,只需重装Python2.7.6 X64 for win即可.然后,默认已安装的Pyt ...

  4. ArcGis Python脚本——批量添加字段

    先看如何增加一个字段 函数:arcpy.AddField_management 语法:AddFields_management (in_table, field_description) 参数 说明 ...

  5. ansible和python的zabbix_api批量添加rsync服务的监控

    一.正常的处理流程: 1.添加zabbix用户对rsync程序的sudo权限,且不需要输入密码 # visudo即在/etc/sudoers配置文件最后添加如下内容 Defaults:zabbix ! ...

  6. 「Python实用秘技04」为pdf文件批量添加文字水印

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...

  7. python mysql curros.executemany 批量添加

    #添加的表结构字段分辨是(id,title,summary,visits,accountName,grabTime) #其中id,是int自增主键,在添加操作的时候,不需要对id进行操作 conn = ...

  8. zabbix利用api批量添加item,并且批量配置添加graph

    关于zabbix的API见,zabbixAPI 1item批量添加 我是根据我这边的具体情况来做的,本来想在模板里面添加item,但是看了看API不支持,只是支持在host里面添加,所以我先在一个ho ...

  9. IIS环境下如何批量添加、修改、删除绑定的域名

    IIS环境下如何批量添加和修改所绑定域名 1.关闭IISADMIN服务和W3SVC服务,可以从服务里面关闭,也可以直接执行命令:net stop iisadmin /y: 2.打开“C:\WINDOW ...

随机推荐

  1. 【CF765F】Souvenirs

    [CF765F]Souvenirs 题面 洛谷 题解 我们可以发现,对于某个右端点\(i\),左端点\(j\)在由\(i\rightarrow 1\)的过程中,每一段的答案是单调不增的,由这个性质,我 ...

  2. JDBC-select练习&jdbc工具类&数据库登录案例

    一.select练习 1.说明 练习: * 定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回. 1. 定义Emp类 2. 定义方法 public List<Emp> fi ...

  3. 第02组 Alpha冲刺(4/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...

  4. xss、SQL测试用例小结

    xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert(&quo ...

  5. leetcode:7. 整数反转

    题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 注意:假 ...

  6. python测试mysql数据库性能(二)

    一,普通写入数据库 二,批量写入数据库 三,普通写入数据库添加事务 config = { 'host': 'localhost', 'port': 3306, 'database': 'test', ...

  7. Nginx发布静态图片服务器

    vir-hosts.conf内容 server { listen ; server_name _; location ~ .*\.(gif|jpg|jpeg|png)$ { expires 24h; ...

  8. KCP TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间)

    http://www.skywind.me/blog/archives/1048 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降 ...

  9. sigmoid与softmax 二分类、多分类的使用

    二分类下,sigmoid.softmax两者的数学公式是等价的,理论上应该是一样的,但实际使用的时候还是sigmoid好 https://www.zhihu.com/question/29524708 ...

  10. 浅入深出ETCD之【集群部署与golang客户端使用】

    前言 之前说了etcd的简介,命令行使用,一些基本原理.这次来说说现实一点的集群部署和golang版本的客户端使用.因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一 ...