中国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地址的最后一位? 上一主题 | 下一主题
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『楼 主』:  如何提取本机的ip地址,以及ip地址的最后一位?

请教各位大侠,我有个脚本要使用ip地址,以及ip地址的最后一位,
比如,我要在一个命令里,使用echo %ip% clnt%ip最后一位%>c:\windows\test 文件里,在这里%ip%为本机ip,%ip最后一位%为ip地址的最后一位,并且如果不足3位的话,要凑足三位,比如,127.0.0.1,这里ip地址的最后一位要提取001,请问,各位大侠,怎么才能做到?

先在这里谢谢各位的回答!!!


还有一个问题,可能有人问了很多遍了,就是比如我的D盘里有个文件夹,D:\文件夹,我想把这个文件夹的快捷方式发送到桌面一个,开始程序里一个,怎么做到?

最后一个问题,批处理运行的时候,会出现一个黑色的窗口,怎么才能让批处理运行的时候,什么反应都没有那 ?

[ Last edited by crazyforcrane on 2008-9-19 at 12:55 PM ]

2008-9-19 12:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 2 楼』:  

ping %computername%

ipconfig /all
可得到本机在局域网的IP
外网的IP不会,如果是直接用猫上网ping %computername%也可得到外网IP。



┌───────┐
├→学习→实践→┤
└───────┘
2008-9-19 12:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『第 3 楼』:  

关键我是想用在批处理里,而不是手工去添加这些文件,如果是手工添加的话,哪么就没有这些问题了。而所说的用ping或者ipconfig提取ip的,我又不会呀。。。

[ Last edited by crazyforcrane on 2008-9-19 at 01:39 PM ]

2008-9-19 12:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『第 4 楼』:  

各位大哥,有没有人能帮帮我啊......

2008-9-19 13:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 5 楼』:  

用ping会慢一点,改用ipconfig会好很多,ipconfig的答案已经有人给了,我就用ping写个吧。
@echo off
for /f "tokens=2 delims=[]" %%i in ('ping %computerName%') do (
 for /f "tokens=1-4 delims=." %%j in ("%%i") do (
  call :setv 00%%j 00%%k 00%%l 00%%m ip_1 ip_2 ip_3 ip_4 ip
 )
)
echo —————IP:%ip%
echo IP最后一位为:%ip_4%
pause
:setv
 set %5=%1
 set %6=%2
 set %7=%3
 set %8=%4
 set %9=%ip_1:~-3%.%ip_2:~-3%.%ip_3:~-3%.%ip_4:~-3%
 set ip_4=%ip_4:~-3%




┌───────┐
├→学习→实践→┤
└───────┘
2008-9-19 13:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『第 6 楼』:  

谢谢各位高手,虽然我还没有试试看好不好用,但总算有点眉目了。

2008-9-19 13:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『第 7 楼』:  

还是有一个问题,那就是除了第四位之外,别的都是有几位就要几位的,比如第二位是1的话,就要1而不要001

2008-9-19 13:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 8 楼』:  

改改就好了。
@echo off
for /f "tokens=2 delims=[]" %%i in ('ping %computerName%') do (
 for /f "tokens=1-4 delims=." %%j in ("%%i") do (
  call :setv %%j %%k %%l 00%%m ip_4 ip
 )
)
echo —————IP:%ip%
echo IP最后一位为:%ip_4%
pause
:setv
 set %5=%4
 set %6=%1.%2.%3.%ip_4:~-3%
 set ip_4=%ip_4:~-3%




┌───────┐
├→学习→实践→┤
└───────┘
2008-9-19 13:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazyforcrane
初级用户





积分 32
发帖 18
注册 2008-9-19
状态 离线
『第 9 楼』:  

谢谢,谢谢,可惜我都不会,什么都得问你们,谢谢各位。。。

2008-9-19 14:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  


@echo off
for /f "tokens=15" %%a in ('ipconfig^|findstr /i "IP"') do (
  set IP=%%a
  set IPlast=%%~xa
  goto :show
)
:show
set IPlast=100%IPlast:~1%
set IPlast=%IPlast:~-3%
>C:\windows\test echo %IP% clnt%IPlast%




2008-9-19 14:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 11 楼』:  

其实楼上的方法都不是很妥当.为什么?
如果你是用路由上的网,用ipconfig,ping等是获取不了自己的外网IP的,,
这个问题比较麻

2008-9-19 18:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by hackate at 2008-9-19 06:34 PM:
其实楼上的方法都不是很妥当.为什么?
如果你是用路由上的网,用ipconfig,ping等是获取不了自己的外网IP的,,
这个问题比较麻

LZ要的是本机IP就可以了



2008-9-19 20:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  Re 11楼

楼主的标题写的很清楚:
如何提取本机的ip地址,以及ip地址的最后一位?



2008-9-19 20:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: