注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. jsonp跨域原理

    Jsonp原理: 首先在客户端注册一个callback (如:'jsoncallback'), 然后把callback的名字(如:jsonp1236827957501)传给服务器.注意:服务端得到ca ...

  2. [ssc] 数据库管理工具——SQuirreL SQL Client使用入门

    简单介绍: SQuirrel SQL Client是一个用Java写的数据库客户端,用JDBC统一数据库访问接口以后,可以通过一个统一的用户界面来操作MySQL PostgreSQL MSSQL Or ...

  3. 小而美的js程序

    1.获取数字数组最小值的索引 function _getMinKey(arr) { var a = arr[0]; var b = 0; for (var k in arr) { if (arr[k] ...

  4. js--题目二

    //如何获取下面代码所有元素. <form> <input name="" type="text" /> <input name= ...

  5. DOM节点-appendChild

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    < ...

  6. IE9中Media queries在iframe无效的解决方法

    在css中有5个media querie @media screen and(min-width:0px)and(max-width:319px){ body {background-color:re ...

  7. pycharm 导包

    如果需要requests包,python没有自带.可以执行命令:pip install requests,自动安装导入.

  8. biztalk中使用WCF-SQL接受传送数据【转】

    接触biztalk时间不长,转载一篇学习教程: http://www.cnblogs.com/chnking/archive/2010/05/09/1731098.html chnking写的. 一. ...

  9. Installing a single-server IBM FileNet P8 Platform system with IBM Content Navigator

    Product documentation Abstract You can install all of the IBM FileNet P8 Platform components on a si ...

  10. 闭包 (循环事件获取不到i) 和 各种解决循环获取不到i的解决方法

    for(var i in fav){ (function(){                var p=i;                var obj=$S.getId(fav[i]);     ...