楼 主
[感谢HAT和版主3742668解答]ping命令处理-精彩
发表于 2007-08-30 19:32 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 97 发帖 41 注册 2007-08-30 19:05 18年会员 UID 96211 性别 男
状态 离线
学习写批处理文件,遇到下面这个问题,找了半天,不知如何处理,请各位大侠指教:
程序要实现的功能:
1、ping 一个域名(www.sina.com),把ping 出的具体IP地址(比如:218.30.66.101)记录到名字为 ip.ini的文件里。
2、ip.ini的原有文件内容如下:
yuming=www.sian.com
yumingip=218.11.11.10
也就是说PING后,自动更换这个IP
再次感谢HAT和版主3742668的回复,通过学习两位的代码,可以发现写程序思路是非常重要的,着实让人受益匪浅!
[ Last edited by 123cainiao on 2007-9-2 at 03:28 PM ]
第 2 楼
发表于 2007-08-30 20:44 · 中国 重庆 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
try this one:
@echo off
echo Please wait a moment...
if exist ipbak.ini del ipbak.ini
for /f "tokens=1,2 delims=]" %%a in ('ping www.sina.com ^| findstr "data:"') do (
set result=%%a
)
set result=%result:~-13%
for /f "tokens=1,2 delims==" %%a in (ip.ini) do (
if "%%a" equ "yumingip" (
echo %%a=%result%>>ipbak.ini
) else (
echo %%a=%%b>>ipbak.ini
)
)
if exist ipbak.ini (
del ip.ini
ren ipbak.ini ip.ini
)
[
Last edited by HAT on 2007-8-31 at 05:01 PM ]
第 3 楼
发表于 2007-08-31 06:00 · 中国 陕西 西安 电信
新手上路
★
积分 18 发帖 9 注册 2007-08-31 03:59 18年会员 UID 96234 性别 男
状态 离线
请问下自动换取IP的ip列表在那里存放?还是随机的?
第 4 楼
发表于 2007-08-31 10:34 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 97 发帖 41 注册 2007-08-30 19:05 18年会员 UID 96211 性别 男
状态 离线
IP列表在IP.ini文件里。也就是说IP.ini文件里一开始就有文件内容如下:
yuming=www.sian.com
yumingip=218.11.11.10
这里只是用批处理来达到自动检测域名指向的IP,并更新的目的.
测试是否实现要求的功能很简单,用记事本写个ini文件,里面只有2行内容:
yuming=www.sian.com
yumingip=218.11.11.10
然后保存。
接下来运行设计的批处理程序,如果达到更新yumingip=218.11.11.10的目的,就是设计成功了。
[ Last edited by 123cainiao on 2007-8-31 at 10:38 AM ]
第 5 楼
发表于 2007-08-31 16:59 · 中国 上海 联通
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
//这里是不是HAT提供的答案里条件判断上有小BUG
2楼代码已更新
第 6 楼
发表于 2007-08-31 17:01 · 中国 广东 广州 荔湾区 电信
初级用户
★★
积分 136 发帖 51 注册 2007-08-04 21:31 19年会员 UID 94657 性别 男
状态 离线
如果ping 出的IP...位数不同..怎么办??
61.124.12.96
61.124.121.231
61.12.54.12
第 7 楼
发表于 2007-08-31 17:03 · 中国 上海 联通
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
//如果ping 出的IP...位数不同..怎么办??
这样的话,获取真实IP地址的那段要修改一下,会比较麻烦,但并非无法实现。
第 8 楼
发表于 2007-08-31 19:33 · 中国 北京 电信
新手上路
★
积分 10 发帖 5 注册 2007-08-31 17:07 18年会员 UID 96268 性别 男
状态 离线
第 9 楼
发表于 2007-08-31 22:34 · 中国 湖南 联通数据上网公共出口
初级用户
★
积分 48 发帖 24 注册 2007-08-31 17:37 18年会员 UID 96273 性别 男
状态 离线
是不是过于麻烦,
可以用for.读取,然后直接写到那个文件,都可以自己加的
第 10 楼
发表于 2007-09-02 15:05 · 印度 马哈拉施特拉邦 孟买郊区县 腾讯云
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 20年会员 UID 50550
状态 离线
@echo off
set /p yuming=请输入域名:
del ip.ini 2>nul
for /f "delims= tokens=2" %%i in ('ping %yuming% ^| findstr "
许久不写,生疏了许多。
这些简单的事情,还是BAT方便。
第 11 楼
发表于 2007-09-02 15:24 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 97 发帖 41 注册 2007-08-30 19:05 18年会员 UID 96211 性别 男
状态 离线
Originally posted by 3742668 at 2007-9-2 03:05 PM:
@echo off
set /p yuming=请输入域名:
del ip.ini 2>nul
for /f "delims= tokens=2" %%i in ('ping %yuming% ^| findstr "
非常感谢版主回复.您的写法简单明了,而且很好的解决了IP位数判断的问题。
请教可否把手动输入域名,改为直接从ip.ini文件中调用。
第 12 楼
发表于 2007-09-02 15:29 · 印度 马哈拉施特拉邦 孟买郊区县 腾讯云
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 20年会员 UID 50550
状态 离线
Re 123cainiao:
消息收到,要实现四楼的功能也很简单,稍做修改即可:
@echo off
for /f %%i in (ip.ini) do set "%%i"
for /f "delims= tokens=2" %%i in ('ping %yuming% ^| findstr "
第 13 楼
发表于 2007-09-02 16:39 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 97 发帖 41 注册 2007-08-30 19:05 18年会员 UID 96211 性别 男
状态 离线
版主3742668的程序运行会有如下2个问题:
1、如果IP.ini文件里有其余内容,程序运行后会删除其余内容,只留相关的那两句:
如ip.ini文件内容如下:
abc=1.20.35
txt=name
.......
yuming=www.sian.com
yumingip=218.11.11.10
如果运行批处理文件后:
ip.ini直接变成
yuming=www.sian.com
yumingip=218.11.11.10
其余不相干内容全部被删了。
2、是字符串变量的问题
如果把yumingip改名为yu_ming_ip_0
这时无论ip.ini内容如何,程序运行后,ip.ini里都只有:
yuming=www.sian.com
这一行.
[ Last edited by 123cainiao on 2007-9-2 at 05:20 PM ]
第 14 楼
发表于 2007-09-02 16:45 · 印度 马哈拉施特拉邦 孟买郊区县 腾讯云
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 20年会员 UID 50550
状态 离线
Originally posted by 123cainiao at 2007-9-2 16:39:
版主3742668的程序运行会有如下问题:
如果IP.ini文件里有其余内容,程序运行后会删除其余内容,只留相关的那两句:
如ip.ini文件内容如下:
abc=1.2 ...
文件格式一开始没说清楚。
这个也不是问题,参考一下 findstr ,以及 > 和 >>的差别,或许另外配合for命令的skip开关,还是很简单的。
你先自己尝试一下,实在不行你再求助大家吧。
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
vkill
+8
2007-09-03 13:38
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正