近期朋友在外面做了一个项目,需要对网络架构做整改,明白需求后,准备第二天给客户做架构调整;据了解他们的有两条线路,一条电信、一条网通;两条线都是通过一个路由器进行出网的,他们有一个防火墙,需要将电信的网络切换到防火墙上,切换前,他就说需要添加一个路由表,我们知道电信的路由表比较多,所以需要手动去添加,所以在网上就下载了一个比较完整的电信路由表,但是网上下载的电信的路由表的子网是反向的,需要将反向的子网改成正向的才能使用,改的前提是是需要去计算。怎么去计算呢,用255减去反向子网的值,但后得到的结果作为准确值使用。所以就想到了vbs程序修改。

网上下载的路由表结构:

route outside 58.32.0.0 0.31.255.255

以下数据是我们从网上下载的完整的电信路由表。我们需要根据自己的需求更改为:

Route outside 58.32.0.0 255-0.255-31.255-255.255-255 +下一跳(106.34.168.2

根据以上算法我们需要得到的结果是:

route outside 58.32.0.0 255.224.0.0 106.34.168.2

我们下载下来的电信路由表总共有445条,如果用手动改的话,工作量相当大。所以就想到了vbs,所以在此给大家展示一下。方便有需要的同学使用

需求明确后,我们开始编辑vbs脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
filename="route.txt"
filename2="route2.txt"
Set WshShell =CreateObject("WScript.Shell")
currentpath= WshShell.CurrentDirectory
Set fso = createobject("Scripting.FilesystemObject")
Set fileObj = fso.OpenTextFile(currentpath&"\"&filename,1)
Set fileObj2 = fso.OpenTextFile(currentpath&"\"&filename2,2,true)
Do while Not fileObj.AtEndOfStream
content = fileObj.ReadLine
strResult=""
If RegExpTest("^route.*",content) Then
strArray=split(content," ",-1)
strLast=strArray(UBound(strArray))
strLastArray=split(strLast,".",-1)
strLen=UBound(strLastArray)
For i=Lbound(strLastArray) to UBound(strLastArray)
str2=255-strLastArray(i)
strResult=strResult&str2&"."
Next
strResult=left(strResult,len(strResult)-1)
For i=Lbound(strArray) to UBound(strArray)-1
strFinalResult = strFinalResult &" "& strArray(i)
Next
strFinalResult = strFinalResult & " "&strResult &" " "106.34.168.2 " & vbcrlf
End If
Loop
fileObj2.Write strFinalResult
fileObj2.Close
fileObj.Close
Function RegExpTest(patternstr,str)
Dim regEx, retVal ' Create variable.
Set regEx = New RegExp ' Create regular expression.
regEx.Pattern = patternstr ' Set pattern.
regEx.IgnoreCase = False ' Set case sensitivity.
retVal = regEx.Test(str) ' Execute the search test.
If retVal Then
RegExpTest=True
Else
RegExpTest=False
End If
End Function
msgbox "finish"

注:我们执行脚本的时候,需要将route.txt文件和脚本文件存放在同一个目录下才可以执行。

我们执行前的内容:

执行后,会在同一个目录下生成一个route2.txt文件,该文件是修改后生成的。

脚本执行完成

我们查看生成后的文件

本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1556815,如需转载请自行联系原作者

Vbs程序批量修改防火墙路由相关推荐

  1. 用python写名字代码_用python编写一个批量修改文件名的小程序

    1.问题描述: 原有的视频文件按序排列,但是文件名没有对内容的说明,如下图所示: 原视频文件列表.jpg 想将其批量修改成如下文件名: 图2:要改成的文件名.jpg 最终想要的效果: ok.jpg 不 ...

  2. 在日常生活中,经常会遇到某些需求对文件名称进行修改,借助刚学过的文件操作,编写一个可以批量修改文件名的小程序。

    在日常生活中,经常会遇到某些需求对文件名称进行修改,借助刚学过的文件操作,编写一个可以批量修改文件名的小程序. import os path=input('请输入文件路径(结尾加上/):') #获取该 ...

  3. VBS批量修改文件名

    原图 修改后 '批量修改文件名.vbs Function GetScriptPath()GetScriptPath = Left(WScript.ScriptFullName, Len(WScript ...

  4. 程序解析excel中的图片_产品日志丨支持导入Excel中的图片amp;批量修改后期实体字段...

    本次安捷秀又迎来了一个大版本更新,除了大家呼声很高的「实体模块导入 Excel 」外,还有「批量编辑实体」,「支持右击修改」以及针对海外用户的「全页面支持英文」等功能的新增与优化,一起来看看吧. 导入 ...

  5. linux修改程序文件内容,linux 批量修改文件内容

    如果有批量修改文件内容的需求,可参考下面这些方法 1.批量查找某个目下文件的包含的内容,例如: #   grep -rn或l "要找查找的文本"  路径或文件 rn表示匹配查找字符 ...

  6. docker高级应用之智能添加与修改防火墙规则

    如果你有以下痛苦: 1.使用默认docker0桥接方式: 2.修改防火墙规则的话,使用手动修改配置: 3.并且修改时候还得计算来源端口,防止重复端口使用户登陆错误容器: 4.并当容器意外重启,内网ip ...

  7. 批量修改文件名称(Python)

    本程序功能:批量修改文件名称 import os import redef replaceDirName(rootDir): # 修改rootDir路径下的文件夹名num = 0dirs = os.l ...

  8. 批量修改文件夹下图片名称(Python)

    本程序的功能是:批量修改文件夹下图片名称. import os import redef replcaeFileName(pic_path): # 修改pic_path路径下的文件名piclist = ...

  9. python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...

    标签:rename   current   变量   阅读   tor   小伙伴   search   其他   就是如果程序中有一个变量被用得比较多,但名字起得不是很好,导致其他阅读程序的人搞不清 ...

最新文章

  1. 马化腾:微信将被谁颠覆,领衔下一代互联网的终端居然是?
  2. 经验总结--我的小程序开发和进化之路
  3. mysql四-2:多表查询
  4. Linux进程间通信中的文件和文件锁
  5. 在现有k8s集群中安装kubesphere时报错:metrics-server failed
  6. VTK:八叉树可视化用法实战
  7. Linux的cp -a与cp -p
  8. 16、Python与设计模式--模板模式
  9. 你的输入法都暴露了些啥?
  10. 东航期货模拟交易brockerid(期货公司的客户号)
  11. 陷阱:在 WebApp 中谨防 Singleton 错误
  12. C#之数据库编程:从入门到精通
  13. 2020全国计算机专业考研学校
  14. TOGAF9.2第I部分 第2章核心概念
  15. php --- 二维码生成代码
  16. 【嵌入式C语言系列】关键字详解【const】
  17. IntelliJ IDEA 2017完全破解方法
  18. 人工智能、大数据、云计算概念
  19. 烟雨黑帽seo超级模板站群-可一键清除内页URL转换成单页-百度搜狗超级模板站群-多城市网站站群
  20. 蓝鲸智云平台部署[6.0.5]

热门文章

  1. MAC下Android的Eclipse开发环境的搭建 转自MacroCheng
  2. JSON如何序列图片
  3. 诡异的 BOM 字符 \ufeff
  4. CentOS依赖包查找工具(https://centos.pkgs.org)
  5. iOS DLNA
  6. 要理解递归,得先理解递归--用Java语言由浅入深讲解汉诺塔游戏
  7. 第十一章 Shell常用命令与工具(一)
  8. Track and Follow an Object----4
  9. android 设备标识
  10. LINUX SAN 500G重新分区、格式化,后成功恢复数据90%