标题: [求助][没人能帮我吗]求将零散ip段整合的批处理【急】
[打印本页]
作者: cz1314
时间: 2007-11-12 02:10
标题: [求助][没人能帮我吗]求将零散ip段整合的批处理【急】
从纯真数据库上去一段ip如下
-------------以下是取样-------------------------------------
58.60.232.202 58.60.232.203 广东省深圳市龙岗区 电信
58.60.232.204 58.60.232.204 广东省深圳市龙岗区 龙平东路宇宙村网吧
58.60.232.205 58.60.232.255 广东省深圳市龙岗区 电信
58.60.233.0 58.60.239.255 广东省深圳市 电信
58.60.240.0 58.60.243.255 广东省深圳市龙岗区 电信
58.60.244.0 58.61.3.255 广东省深圳市 电信
58.61.4.0 58.61.4.255 广东省深圳市罗湖区 电信
58.61.5.0 58.61.5.255 广东省深圳市龙岗区 电信
58.61.6.0 58.61.7.255 广东省深圳市 电信
58.61.8.0 58.61.8.255 广东省深圳市福田区 电信
58.61.9.0 58.61.19.255 广东省深圳市 电信
58.61.20.0 58.61.20.255 广东省深圳市宝安区 电信
58.62.37.0 58.62.40.255 广东省广州市 电信
58.62.41.0 58.62.41.255 广东省广州市白云区 电信
58.62.42.0 58.62.42.135 广东省广州市 大学城
58.63.104.0 58.63.105.255 广东省广州市天河区 电信
58.63.106.0 58.63.106.255 广东省广州市白云区 电信
58.63.107.0 58.63.107.255 广东省广州市天河区 电信
---------------------------------------------------------
59.40.0.0 59.51.0.0 广东省汕头市 (潮南区/潮阳区)电信ADSL
61.20.0.0 61.28.0.0 广东省广州市白云区 电信
-------------以上是取样---------------------------
--------------------------------------------------
我希望把上面的ip地址整理成下面这样:
58.60.0.0 58.64.0.0
59.40.0.0 59.45.0.0
59.45.0.0 59.50.0.0
59.50.0.0 59.51.0.0
61.20.0.0 61.25.0.0
61.25.0.0 61.28.0.0
---------------------------------------------------------
简单解释下 :
把ip分为 A B C D 4个段 即 A.B.C.D
一 首先比较 A段:
1 如果A段相同则继续比较B段,如果上下2段ip的B 段差 小于(等于)1,则合并这2段。
例如:
--------------以下是取样----------------------------------
58.60.244.0 58.61.3.255 广东省深圳市 电信
58.61.4.0 58.61.4.255 广东省深圳市罗湖区 电信
--------------以上是取样----------------------------------
将整理成: 58.60.244.0 58.61.4.255
2 如果A段不同,则继续选择下面的ip进行A段的比较。
依次类推!
二 比较同一行 B 段ip
1 如果同一行的 B 段 ip 差小于(等于)5,则继续取下一行进行比较。
2 如果同一行的 B 段 ip 差大于 5 ,则以5为单位进行划分。
例如:
--------------以下是取样----------------------------------
59.40.0.0 59.51.0.0 广东省汕头市 (潮南区/潮阳区)电信ADSL
61.20.0.0 61.28.0.0 广东省广州市白云区 电信
--------------以上是取样----------------------------------
将整理成:
59.40.0.0 59.45.0.0
59.45.0.0 59.50.0.0
59.50.0.0 59.51.0.0
61.20.0.0 61.25.0.0
61.25.0.0 61.28.0.0
希望高高手赐教如何写这样的批处理命令,
以上 一、二 2个部分 可以分为2个批处理分开处理,如果能合成一个那就更完美了
小弟跪求!!
QQ:1919134
[
Last edited by cz1314 on 2007-11-12 at 11:14 PM ]
作者: terse
时间: 2007-11-12 02:29
这样做是不是想文件小些呢?还是别的作用?
下面是我几天前写的对纯真数据库搜索IP的批处理
不过太慢了 最后还是放弃了
@echo off&setlocal enabledelayedexpansion&color 1E
title IP地址查询
mode con: cols=55 lines=15
:start
cls
echo.&echo.
echo 请输入所要查询的IP
for %%a in (ip ipa aip bip cip ip1 ip2 ip3 ip4) do set %%a=
set /p ipa=
if not defined ipa exit
cls
for /f "tokens=1,2,3,4 delims=. " %%a in ('echo !ipa!') do (
set ip1=%%a
set ip2=%%b
set ip3=%%c
set ip4=%%d
)
if !ip1! GTR 255 goto start
if !ip2! GTR 255 goto start
if !ip3! GTR 255 goto start
if !ip4! GTR 255 goto start
set ip=!ipa!
set ip=!ip:.=\.!
for /f "tokens=1,2*" %%i in ('findstr "\<!ip!\>" ip.txt') do (
set aip=%%i
set bip=%%j
set cip=%%k
)
if "!cip!"=="" goto ip2
goto ok
:ip2
if "!ip4!"=="0" goto ip3
set /a ip4-=1
set ip=!ip1!.!ip2!.!ip3!.!ip4!
set ip=!ip:.=\.!
for /f "tokens=1,2*" %%i in ('findstr "\<!ip!\>" ip.txt') do (
set aip=%%i
set bip=%%j
set cip=%%k
)
if "!cip!"=="" goto ip2
goto ok
:ip3
if "!ip3!"=="0" if "!cip!"=="" goto ip4
set /a ip3-=1
set ip=!ip1!.!ip2!.!ip3!
set ip=!ip:.=\.!
for /f "tokens=1,2*" %%i in ('findstr "\<!ip!\>" ip.txt') do (
set aip=%%i
set bip=%%j
set cip=%%k
)
if "!cip!"=="" goto ip3
goto ok
:ip4
if "!ip2!"=="0" goto ip5
set /a ip3-=1
set ip=!ip1!.!ip2!
set ip=!ip:.=\.!
for /f "tokens=1,2*" %%i in ('findstr "\<!ip!\>" ip.txt') do (
set aip=%%i
set bip=%%j
set cip=%%k
)
if "!cip!"=="" goto ip4
goto ok
:ip5
set ip=!ip1!
set ip=!ip:.=\.!
for /f "tokens=1,2*" %%i in ('findstr "\<!ip!\>" ip.txt') do (
set aip=%%i
set bip=%%j
set cip=%%k
)
:ok
if "!cip!"=="" goto nip
echo 你查询的IP: !ipa!
echo 所属IP段: !aip!-!bip!
echo IP所在地: !cip!
pause
goto start
:nip
echo.&echo.
echo 你查询的IP: !ipa!
echo.
echo 很抱歉!没找到你要查询的IP
echo.
pause
goto start
回得这么快
[
Last edited by terse on 2007-11-12 at 02:35 AM ]
作者: cz1314
时间: 2007-11-12 02:32
文件小是一个方面,
主要是提高使用效率,节约时间!
作者: cz1314
时间: 2007-11-12 02:33
我对比较这块 不熟,不知道写这样的批处理算不算有难度。
我毕竟是大菜鸟!!
作者: cz1314
时间: 2007-11-12 02:48
请问朋友 你这个批处理能其到什么作用啊》》
你这个主要是起查询作用的吧!
我需要的是 能通过比较 对已搜索到的ip段进行整理!
看你写的批处理,我想你应该能帮帮我的。
谢谢了!!
[
Last edited by cz1314 on 2007-11-12 at 02:51 AM ]