标题: [文本处理] 批处理如何写一个IP段生成器? [打印本页]
作者: 我爱你芮儿 时间: 2013-3-11 18:43 标题: 批处理如何写一个IP段生成器?
对于for没学好,怎么都写不出,格式嘛这样……先是初始地址,然后是结束地址,生成的是中间的地址,生成在该目录的下为txt
感谢
作者: 我爱你芮儿 时间: 2013-3-11 18:47
表述有点不清楚啊,重新表述下格式就是先输入起始的地址,再回车后输入结束地址,然后生成在目录下的txt,且生成一个地址后要换行啊
作者: BAT-VBS 时间: 2013-3-11 20:49
- @echo off
- for /l %%a in (1,1,255) do (
- echo 192.168.0.%%a
- )
复制代码
作者: 我爱你芮儿 时间: 2013-3-11 21:39
回复 3# BAT-VBS
大哥,不是这么简单的,这个简单的我也会,我是说的整个ip段
作者: BAT-VBS 时间: 2013-3-11 21:45
回复 4# 我爱你芮儿
请给具体的例子
作者: ghl621 时间: 2013-3-11 22:21
我觉得你要IP段就按3楼写的就可以了,你要其他IP段找那样把变量改一下就可以。
最后要生成“TXT”文件,ECHO后面加两个>如:
echo 192.168.0.%%a >>IP.txt
这样就能生成IP文本段文件。
作者: wankoilz 时间: 2013-3-11 22:58
3楼给的不就是一个段么...
作者: asfor78 时间: 2013-3-11 23:27
这个 我有代码给你- @shift
- @shift
- @echo off
- MODE con: COLS=40 lines=20
- color 5f
- title 自定义生成小段Ip
- echo.
- echo 使用说明:
- echo.
- echo 输入Ip头,生成段数,并用空格隔开.
- echo Ip段规则:某项最大数值为255
- echo 将生成后的Ip段写入AllIp.txt
- echo.
- echo 正确方法 :) 例:113 0 2 √
- echo 生成后小段Ip:
- echo 113.0.0.0 113.0.255.255
- echo 113.1.0.0 113.1.255.255
- echo 113.2.0.0 113.2.255.255
- echo.
- echo 错误方法 :( 例:113 0 256 ×
- echo 生成后某一段:
- echo 113.256.0.0 113.256.255.255
- echo.
- echo.
- echo 请认真阅读使用说明,按任意键开始生成.
- pause >nul
- cls
- del /a /f /q 自定义生成小段Ip.txt >nul 2>nul
- set a=
- set /p a=请输入:
- for /f "tokens=1-3" %%i in ("%a%") do (
- for /l %%a in (%%j,1,%%k) do (echo %%i.%%a.0.0 %%i.%%a.255.255>>Ip.txt)
- )
- Ip.txt
-
复制代码
作者: 我爱你芮儿 时间: 2013-3-12 12:06
回复 5# BAT-VBS
可视化的这样
请输入起始IP段:xxx.xxx.xxx.xxx(例,100.123.11.03)
请输入结束IP段:xxx.xxx.xxx.xxx(例,100.124.255.255)
在桌面上(或者该文件目录下)生成一个txt
txt里面则是这样
100.123.11.04
100.123.11.05
……
100.124.255.254
100.124.255.255
就是这样……我怎么都写不出来……
作者: 我爱你芮儿 时间: 2013-3-12 12:08
回复 8# asfor78
你这个代码我这里也有,不过没用了啊
作者: wankoilz 时间: 2013-3-13 11:21
看这个能用不,上万行就有点慢了- Option Explicit
- Dim strBegin_ip,strEnd_ip,FSO
-
- strBegin_ip=InputBox("请输入起始IP地址:")
- If Not IsIP(strBegin_ip) Then
- MsgBox "非法IP!",0,"错误"
- WScript.Quit
- End If
- strEnd_ip=InputBox("请输入结束IP地址")
- If Not IsIP(strEnd_ip) Then
- MsgBox "非法IP!",0,"错误"
- WScript.Quit
- End If
- Set FSO=CreateObject("scripting.filesystemobject")
- FSO.CreateTextFile("IP地址.txt",True).Write(GenerateIP(strBegin_ip,strEnd_ip))
- CreateObject("wscript.shell").run "IP地址.txt"
-
- Function GenerateIP(strBegin,strEnd)
- Dim arrBegin,arrEnd,intSum_begin,intSum_end
- Dim intSeg1,intMod1,intSeg2,intMod2,intSeg3,intMod3,intSeg4
- Dim i
- arrBegin=Split(strBegin,".",-1)
- arrEnd=Split(strEnd,".",-1)
- intSum_begin=arrBegin(0)*256^3+arrBegin(1)*256^2+arrBegin(2)*256+arrBegin(3)
- intSum_end=arrEnd(0)*256^3+arrEnd(1)*256^2+arrEnd(2)*256+arrEnd(3)
- If intSum_end-intSum_begin<0 Then
- MsgBox "结束IP大于起始IP",0,"错误"
- WScript.Quit
- End If
- For i = intSum_begin To intSum_end
- intSeg1=int(i/256^3):intMod1=i-intSeg1*256^3
- intSeg2=Int(intMod1/256^2):intMod2=intMod1-intSeg2*256^2
- intSeg3=Int(intMod2/256):intMod3=intMod2-intSeg3*256
- intSeg4=intMod3
- GenerateIP=GenerateIP&intSeg1&"."&intSeg2&"."&intSeg3&"."&intSeg4&vbCrLf
- Next
- End Function
-
- Function IsIP(strIPAddress)
- Dim oRegex
- Set oRegex=CreateObject("VBscript.Regexp")
- oRegex.Global=True
- oRegex.Pattern="((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))"
- IsIP=oRegex.Test(strIPAddress)
- End Function
复制代码
作者: 我爱你芮儿 时间: 2013-3-20 12:28
回复 11# wankoilz
感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |