找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31808|回复: 11

[文本处理] 批处理如何写一个IP段生成器?

[复制链接]
发表于 2013-3-11 18:43:54 | 显示全部楼层 |阅读模式
对于for没学好,怎么都写不出,格式嘛这样……先是初始地址,然后是结束地址,生成的是中间的地址,生成在该目录的下为txt
感谢
 楼主| 发表于 2013-3-11 18:47:21 | 显示全部楼层
表述有点不清楚啊,重新表述下格式就是先输入起始的地址,再回车后输入结束地址,然后生成在目录下的txt,且生成一个地址后要换行啊
发表于 2013-3-11 20:49:53 | 显示全部楼层
  1. @echo off
  2. for /l %%a in (1,1,255) do (
  3.     echo 192.168.0.%%a
  4. )
复制代码
 楼主| 发表于 2013-3-11 21:39:23 | 显示全部楼层
回复 3# BAT-VBS


    大哥,不是这么简单的,这个简单的我也会,我是说的整个ip段
发表于 2013-3-11 21:45:36 | 显示全部楼层
回复 4# 我爱你芮儿


    请给具体的例子
发表于 2013-3-11 22:21:55 | 显示全部楼层
我觉得你要IP段就按3楼写的就可以了,你要其他IP段找那样把变量改一下就可以。
最后要生成“TXT”文件,ECHO后面加两个>如:
echo 192.168.0.%%a >>IP.txt
这样就能生成IP文本段文件。
发表于 2013-3-11 22:58:10 | 显示全部楼层
3楼给的不就是一个段么...
发表于 2013-3-11 23:27:30 | 显示全部楼层
这个 我有代码给你
  1. @shift
  2. @shift
  3. @echo off
  4. MODE con: COLS=40 lines=20
  5. color 5f
  6. title 自定义生成小段Ip
  7. echo.
  8. echo 使用说明:
  9. echo.
  10. echo   输入Ip头,生成段数,并用空格隔开.
  11. echo   Ip段规则:某项最大数值为255
  12. echo   将生成后的Ip段写入AllIp.txt
  13. echo.
  14. echo   正确方法 :) 例:113 0 2       √
  15. echo   生成后小段Ip:
  16. echo           113.0.0.0 113.0.255.255
  17. echo           113.1.0.0 113.1.255.255
  18. echo           113.2.0.0 113.2.255.255
  19. echo.
  20. echo   错误方法 :( 例:113 0 256     ×
  21. echo   生成后某一段:
  22. echo           113.256.0.0 113.256.255.255
  23. echo.
  24. echo.
  25. echo  请认真阅读使用说明,按任意键开始生成.
  26. pause >nul
  27. cls
  28. del /a /f /q 自定义生成小段Ip.txt >nul 2>nul
  29. set a=
  30. set /p a=请输入:
  31. for /f "tokens=1-3" %%i in ("%a%") do (
  32. for /l %%a in (%%j,1,%%k) do (echo %%i.%%a.0.0 %%i.%%a.255.255>>Ip.txt)
  33. )
  34. Ip.txt

  35. 
复制代码
 楼主| 发表于 2013-3-12 12:06:31 | 显示全部楼层
回复 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:18 | 显示全部楼层
回复 8# asfor78


    你这个代码我这里也有,不过没用了啊
发表于 2013-3-13 11:21:47 | 显示全部楼层
看这个能用不,上万行就有点慢了
  1. Option Explicit
  2. Dim strBegin_ip,strEnd_ip,FSO

  3. strBegin_ip=InputBox("请输入起始IP地址:")
  4. If Not IsIP(strBegin_ip) Then
  5.     MsgBox "非法IP!",0,"错误"
  6.     WScript.Quit
  7. End If
  8. strEnd_ip=InputBox("请输入结束IP地址")
  9. If Not IsIP(strEnd_ip) Then
  10.     MsgBox "非法IP!",0,"错误"
  11.     WScript.Quit
  12. End If
  13. Set FSO=CreateObject("scripting.filesystemobject")
  14. FSO.CreateTextFile("IP地址.txt",True).Write(GenerateIP(strBegin_ip,strEnd_ip))
  15. CreateObject("wscript.shell").run "IP地址.txt"

  16. Function GenerateIP(strBegin,strEnd)
  17.         Dim arrBegin,arrEnd,intSum_begin,intSum_end
  18.         Dim intSeg1,intMod1,intSeg2,intMod2,intSeg3,intMod3,intSeg4
  19.         Dim i
  20.         arrBegin=Split(strBegin,".",-1)
  21.         arrEnd=Split(strEnd,".",-1)
  22.         intSum_begin=arrBegin(0)*256^3+arrBegin(1)*256^2+arrBegin(2)*256+arrBegin(3)
  23.         intSum_end=arrEnd(0)*256^3+arrEnd(1)*256^2+arrEnd(2)*256+arrEnd(3)
  24.         If intSum_end-intSum_begin<0 Then
  25.             MsgBox "结束IP大于起始IP",0,"错误"
  26.             WScript.Quit
  27.         End If
  28.         For i = intSum_begin To intSum_end
  29.             intSeg1=int(i/256^3):intMod1=i-intSeg1*256^3
  30.             intSeg2=Int(intMod1/256^2):intMod2=intMod1-intSeg2*256^2
  31.             intSeg3=Int(intMod2/256):intMod3=intMod2-intSeg3*256
  32.             intSeg4=intMod3
  33.             GenerateIP=GenerateIP&intSeg1&"."&intSeg2&"."&intSeg3&"."&intSeg4&vbCrLf
  34.         Next
  35. End Function

  36. Function IsIP(strIPAddress)
  37.     Dim oRegex
  38.     Set oRegex=CreateObject("VBscript.Regexp")
  39.     oRegex.Global=True
  40.     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))))"
  41.     IsIP=oRegex.Test(strIPAddress)
  42. End Function
复制代码
 楼主| 发表于 2013-3-20 12:28:10 | 显示全部楼层
回复 11# wankoilz


    感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:13 , Processed in 0.020168 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表