注1:10.102. 可以替换成其他的,或者手动输入。

注2:minion-可以替换为其他的,或者手动输入。

代码如下(python3):

import re

# list = []
list1 = []
list2 = []
list3 = []
list4 = []
with open('srcIp.txt') as fip,open('desIP','w') as f:
for data in fip.readlines():
# data = re.sub(r'[\s|,]', '\n', data)
data = re.sub(r'[^\d|\.]', '\n', data)
data = re.sub('10.102.', 'minion-', data)
list1.append(data)
for data in list1:
data = data.strip('\n')
if data == '':
continue
data = re.sub(r'\s+', ',', data)
list2.append(data)
for data in list2:
if ',' in data:
data = data.split(',')
for i in range(0,len(data)):
list3.append(data[i])
continue
list3.append(data)
for data in list3:
if not data.startswith('minion'):
data = 'minion-' + data
list4.append(data)
continue
list4.append(data)
print('作用IP数:%s' % len(list4))
i = 0
for data in list4:
if i == len(list4) - 1:
f.write(data)
f.write('\n')
break
data = data + ','
f.write(data)
i += 1

源IP文件内容:

10.102.37.41
10.102.37.61 10.102.38.110
10.102.38.111
10.102.38.71
10.102.38.77
10.102.38.80
10.102.38.81 10.102.32.98
10.102.32.99
10.102.32.100
10.102.32.101 10.102.36.32 10.102.36.33 10.102.36.72 10.102.38.87 10.102.38.88 10.102.38.89 10.102.38.90 10.102.38.91 10.102.36.32,10.102.36.33 10.102.36.72, 10.102.38.87 25.221 38.36
32.21
33.65
,33.65 ,32.21 (25.33,95.66,58.37;55.99;)

执行完脚本后文件内容:

minion-37.41,minion-37.61,minion-38.110,minion-38.111,minion-38.71,minion-38.77,minion-38.80,minion-38.81,minion-32.98,minion-32.99,minion-32.100,minion-32.101,minion-36.32,minion-36.33,minion-36.72,minion-38.87,minion-38.88,minion-38.89,minion-38.90,minion-38.91,minion-36.32,minion-36.33,minion-36.72,minion-38.87,minion-25.221,minion-38.36,minion-32.21,minion-33.65,minion-33.65,minion-32.21,minion-25.33,minion-95.66,minion-58.37,minion-55.99

可见,把各种IP变成了SaltStack可操作的IP。(我们salt minion的名称都是minion-IP后两位的格式)

代码2,此方法直接输入内容,输出内容,省去了读文件写文件:

import re,json

list1 = []
list2 = []
stopword = 'run'
str1 = ''
print('请输入IP:')
for line in iter(input,stopword):
str1 += line + '\n'
with open('sss','w') as f:
f.write(json.dumps(str1))
with open('sss','r') as f1,open('sss1','w') as f2:
for data in f1.readlines():
data = re.sub(r'[^\d|\.]', '\n', data)
data = re.sub(r'\n+', '\n', data)
data = re.sub('10.102.', 'minion-', data)
print(data)
f2.write(data)
with open('sss1') as f3:
for data in f3:
if not data.startswith('minion-') and not data.startswith(' '):
data = 'minion-' + data
list1.append(data)
for data in list1:
data = re.sub(r'\n', ',', data)
list2.append(data)
for data in list2:
print(data,end='')

输入任意IP,将IP转化为minion-IP格式(saltstack)的更多相关文章

  1. WireShark——IP协议包分析(Ping分析IP协议包)

    互联网协议 IP 是 Internet Protocol 的缩写,中文缩写为“网协”.IP 协议是位于 OSI 模型中第三层的协议,其主要目的就是使得网络间能够互联通信.前面介绍了 ARP 协议, 该 ...

  2. Lattice 的 Framebuffer IP核使用调试笔记之IP核生成与参数设置

    本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右 ...

  3. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  4. 如何知道局域网内哪些ip被占用----工具法Free IP Scanner

    在局域网中,尤其是在工作室和公司中需要修改IP地址才能上网,通常我们在设置完ip地址后会提示[该ip地址已被占用],又得回头去修改ip地址.本篇经验就介绍一款很好用的免费软件——Free IP Sca ...

  5. TCP/IP 笔记 - 用户数据报协议和IP分片

    关于本章中的IP分片部分,参考第五章IP分片头部知识点.需要注意的是,TCP有超时重传,UDP的超时重传则依赖上层应用程序实现. 用户数据报协议(UDP) UDP是一个简单的面向无连接.不可靠的数据报 ...

  6. IP白名单添加了当前IP,获取access_token时依然报出错误码40164的坑

    开发公众号网页时,想要调用微信API接口,令人无奈的是,想要调用各接口都需使用access_token,于是,获取access_token的征途开始了…… 1.开发者基本配置 (1) 公众平台官网登录 ...

  7. Nginx禁止直接通过IP地址访问网站以及限制IP登陆某目录(关闭默认站点或空主机头)

    这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下   国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问 ...

  8. PHP获取IP地址的方法,防止伪造IP地址注入攻击

    PHP获取IP地址的方法 /** * 获取客户端IP地址 * <br />来源:ThinkPHP * <br />"X-FORWARDED-FOR" 是代理 ...

  9. IP地址及子网--四种IP广播地址

    国际规定:把所有的IP地址划分为 A,B,C,D,E. 类默认子网掩码:A类为 255.0.0.0; B类为 255.255.0.0; C类为 255.255.255.0.子网掩码是一个32位地址,用 ...

随机推荐

  1. HTML5自学笔记[ 1 ]新增标签

    新增语义化标签 <header></header>: 用于页面或板块头部. <footer></footer>:用于页面底部. <nav>& ...

  2. Compound Interest Calculator4.0

    Compound Interest Calculator4.0 1.团队协作准备:每个同学在github上完成FORK,COMMENT(学号后三位+姓名),PR,MERGE的过程. 2.你的RP由你的 ...

  3. CentOS 6.x启动时网卡eth0未激活

    简述 安装CentOS 6.x操作系统后,开机时发现没有网络,最后发现系统启动时未激活网卡 - 因为只有在激活状态的网卡才能去连接网络,进行网络通讯. 简述 激活网卡eth0 激活网卡eth0 执行& ...

  4. ThinkPHP框架如何修改X-Powered-By

    以前用ThinkPHP框架开发了一个小网站,前几天查询页面HTTP状态发现,里面有一项: X-Powered-By: ThinkPHP 2.0 这样虽然没什么,但感觉如果别有用心的人查询会知道你是用这 ...

  5. 166. Fraction to Recurring Decimal -- 将除法的商表示成字符串(循环节用括号表示)

    Given two integers representing the numerator and denominator of a fraction, return the fraction in ...

  6. JSCore的基本使用

    一.简单介绍 JSCore全称为JavaScriptCore,是苹果公司在iOS中加入的一个新的framework.该framework为OC与JS代码相互操作的提供了极大的便利.该工程默认是没有导入 ...

  7. 初始jQuery

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera ...

  8. 3.7 嵌入式SQL

    可以放入所有高级语言中去,如C 因为,SQL是过程性语句,需要高级语言的非过程性处理集合的分类处理 一.一般形式 所有的SQL语句都必须加前缀EXEC SQL SQL语句完成结束标志(:或END EX ...

  9. 使用PL/SQL连接远程的Oracle数据库

    PL/SQL不仅可以连接本机的oracle数据库.也可以连接远程的数据库. 需要修改一个文件:在本机oracle 数据库的安装目录下找到这个文件: /oracle/ora92/network/admi ...

  10. ajax使用jquery的实现方式

    1.jquery的ajax方法. $("#ajaxbtn").click(function(){ $.ajax({ url:"json.do", beforeS ...