最近在测试的过程中,由于一个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. Linux 系统管理——进程和计划任务管理

    一.  程序和进程关系 1.程序 保存硬盘.光盘等介质中的可执行代码和数据 静态保存的代码 2.进程 在CPU及内存运行的程序代码 动态执行的代码 父.子进程:每一个进程可以创建一个或多个进程 二.静 ...

  2. 【学习笔记】fwt&&fmt&&子集卷积

    前言:yyb神仙的博客 FWT 基本思路:将多项式变成点值表达,点值相乘之后再逆变换回来得到特定形式的卷积: 多项式的次数界都为\(2^n\)的形式,\(A_0\)定义为前一半多项式(下标二进制第一位 ...

  3. dubbo简单示例

    dubbo简单示例 2019-09-06 1 Zookeeper注册中心的搭建(windows单机) 下载zookeeper压缩包并解压到 D:\zookeeper\apache-zookeeper- ...

  4. SpringBoot之文件上传体积过大问题(解决方案)

    错误信息如下(关键): org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the re ...

  5. How to Use Convolutional Neural Networks for Time Series Classification

    How to Use Convolutional Neural Networks for Time Series Classification 2019-10-08 12:09:35 This blo ...

  6. C# winform选择文件、选择文件夹、打开文件

    文章来自博客园友,这里只是做一下笔记. 来源:https://www.cnblogs.com/liuqifeng/p/9149125.html 一.选择文件用OpenDialog OpenFileDi ...

  7. apache Request-URI Too Large 处理办法

    在Apache的httpd.conf配置文件中(直接加就可以) LimitRequestLine 40940 LimitRequestFieldSize 40940

  8. html5统计数据上报API:SendBeacon

    公司为了精准的了解自己产品的用户使用情况,通常会对用户数据进行统计分析,获取pv.uv.页面留存率.访问设备等信息.与之相关的就是客户端的数据采集,然后上报的服务端.为了保证数据的准确性,就需要保证数 ...

  9. ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 4, 'final', 0)

    (flask-demo) ➜ flask-demo git:(master) ✗ pip install mysqlclient==1.2.5 DEPRECATION: Python 2.7 will ...

  10. fgets注意事项

    这是yjy的习题库,中途我在使用fgest时颇费了一点心思,特此记录一下. #include <stdio.h> #include <string.h> #include &l ...