中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]ip类型转换问题:如何把点分十进制IP转换为数字型
作者:
标题: [求助]ip类型转换问题:如何把点分十进制IP转换为数字型 取消高亮 | 上一主题 | 下一主题
gotocmd
新手上路





积分 19
发帖 20
注册 2008-7-3
状态 离线
『楼 主』:  [求助]ip类型转换问题:如何把点分十进制IP转换为数字型

关于数字型转十进制ip在这里已经得到解决: cn-dos.net/forum/viewthread.ph ... 但反过来,如何把十进制ip转数字型ip呢? ───────────────── 版务记录 ───────────────── 执行:HAT 操作:[20098-01-16]在帖子标题中增加搜索关键字 说明:原标题"ip类型转换问题"不利于论坛搜索 处罚:论坛新人免于积分处罚 提示:建议阅读以下帖子 {1415}提问的智慧 {7326}论坛新手必读,所有人的基本行为准则 {22703}请不要做浮躁的人 {32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧 {32825}本版严厉整顿烂帖 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2009-1-16 at 15:39 ]


2009-1-16 14:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  第一为大于128计算出来数是负数=。=算法看懂就好

@echo on for /f "delims=." %%a in ("223.255.255.255") do ( Call :GetDIP %%a %%b %%c %%d ) pause exit :GetDIP set /a dip=%1*256*256*256 set /a dip=%dip%+%2*256*256 set /a dip=%dip%+%3*256 set /a dip+=%4 echo %dip%




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-1-16 14:36
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 3 楼』:  

数字表示范围不知道CMD有简单的方法没。 下面是个VBS的: IP = "223.255.255.255" dip = Split(IP,".") outip = dip(0) * 256 * 256 * 256 outip = outip + dip(1) * 256 * 256 outip = outip + dip(2) * 256 outip = outip + dip(3) MsgBox outip




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-1-16 14:39
查看资料  发短消息  网志   编辑帖子  回复  引用回复
gotocmd
新手上路





积分 19
发帖 20
注册 2008-7-3
状态 离线
『第 4 楼』:  

谢谢slore兄,这只是对某一ip的转换,都怪我没说清楚 是这样的,我通过“ShowIp.exe"(纯真ip数据库工具)得到文本文件ip.txt,内容格式如下: 0.0.0.0 0.255.255.255 IANA CZ88.NET 1.0.0.0 1.51.255.255 IANA CZ88.NET 1.52.0.0 1.52.255.255 美国 CZ88.NET 1.53.0.0 1.153.255.255 IANA CZ88.NET 1.154.0.0 1.154.255.255 美国 CZ88.NET 1.155.0.0 1.255.255.255 IANA CZ88.NET 2.0.0.0 2.255.255.255 IANA CZ88.NET 3.0.0.0 3.255.255.255 美国 新泽西通用电气公司 4.0.0.0 4.9.255.255 美国 CZ88.NET 4.10.0.0 4.10.255.255 美国 新泽西州立大学 ...... 怎样得到文件ip_out.txt内容格式如同: 0 16777215 IANA CZ88.NET 16777216 33554431 IANA CZ88.NET 33554432 50331647 美国 CZ88.NET ........


2009-1-16 15:11
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
gotocmd
新手上路





积分 19
发帖 20
注册 2008-7-3
状态 离线
『第 5 楼』:  

自己顶 等待高手解决....


2009-1-17 12:54
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 6 楼』:  

@echo off&setlocal enabledelayedexpansion for /f "tokens=1-8,* delims= . " %%a in ('type ip.txt') do ( Call :GetDIP %%a %%b %%c %%d one Call :GetDIP %%e %%f %%g %%h tow echo !one! !tow! %%i ) pause goto :eof :GetDIP set /a sur=%2*256*256+%3*256+%4 if %1 gtr 127 ( set/a fr=%1-128 set /a sur=!fr!*256*256*256+!sur! set sur=000000000!sur! set sur=!sur:~-10! set /a su2=1!sur:~-8!-100000000+47483648 set su2=000000000!su2! set su2=!su2:~-10! set /a su1=1!sur:~0,-8!-100+21+!su2:~0,-8! set "sur=!su1!!su2:~-8!" ) else ( set /a sur=%1*256*256*256+!sur! ) set "%5=!sur!" goto :eof




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-1-20 14:43
查看资料  发送邮件  发短消息  网志  OICQ (37659560)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

=.= 果然128以后很麻烦的说~




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-1-20 14:51
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 8 楼』:  改进一下

改进排版,和精简了代码 @echo off&setlocal enabledelayedexpansion for /f "tokens=1-8,* delims= . " %%a in ('type ip.txt') do ( Call :GetDIP %%a %%b %%c %%d one Call :GetDIP %%e %%f %%g %%h tow if "!one:~4,1!"=="" set/p "= "<nul echo !one! !tow! %%i ) pause goto :eof :GetDIP set /a sur=%2*256*256+%3*256+%4 if %1 gtr 127 ( set /a "sur=(%1-128)*256*256*256+!sur!" set suw=000000000!sur:~-9! set /a suw=1!suw:~-9!-1000000000+147483648 set /a sut=!sur:~0,-9!+!suw:~0,-9!+2 set "sur=!sut!!suw:~-9!" ) else ( set /a sur=%1*256*256*256+!sur! ) set "%5=!sur!" goto :eof




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-1-21 14:02
查看资料  发送邮件  发短消息  网志  OICQ (37659560)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: