中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 19:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何提取本机的ip地址,以及ip地址的最后一位? 查看 1,083 回复 12
楼 主 如何提取本机的ip地址,以及ip地址的最后一位? 发表于 2008-09-19 12:41 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
请教各位大侠,我有个脚本要使用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 ]
2 发表于 2008-09-19 12:53 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
ping %computername%

ipconfig /all
可得到本机在局域网的IP
外网的IP不会,如果是直接用猫上网ping %computername%也可得到外网IP。
┌───────┐
├→学习→实践→┤
└───────┘
3 发表于 2008-09-19 12:56 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
关键我是想用在批处理里,而不是手工去添加这些文件,如果是手工添加的话,哪么就没有这些问题了。而所说的用ping或者ipconfig提取ip的,我又不会呀。。。

[ Last edited by crazyforcrane on 2008-9-19 at 01:39 PM ]
4 发表于 2008-09-19 13:12 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
各位大哥,有没有人能帮帮我啊......
5 发表于 2008-09-19 13:13 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
用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%
┌───────┐
├→学习→实践→┤
└───────┘
6 发表于 2008-09-19 13:39 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
谢谢各位高手,虽然我还没有试试看好不好用,但总算有点眉目了。
7 发表于 2008-09-19 13:49 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
还是有一个问题,那就是除了第四位之外,别的都是有几位就要几位的,比如第二位是1的话,就要1而不要001
8 发表于 2008-09-19 13:53 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
改改就好了。
@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%
┌───────┐
├→学习→实践→┤
└───────┘
9 发表于 2008-09-19 14:27 ·  中国 辽宁 沈阳 铁西区 电信
初级用户
积分 32
发帖 18
注册 2008-09-19 11:03
17年会员
UID 126031
性别 男
状态 离线
谢谢,谢谢,可惜我都不会,什么都得问你们,谢谢各位。。。
10 发表于 2008-09-19 14:41 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@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%
11 发表于 2008-09-19 18:34 ·  中国 福建 漳州 联通
中级用户
★★
积分 228
发帖 125
注册 2008-08-25 19:17
17年会员
UID 124135
性别 男
状态 离线
其实楼上的方法都不是很妥当.为什么?
如果你是用路由上的网,用ipconfig,ping等是获取不了自己的外网IP的,,
这个问题比较麻
12 发表于 2008-09-19 20:02 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
Originally posted by hackate at 2008-9-19 06:34 PM:
其实楼上的方法都不是很妥当.为什么?
如果你是用路由上的网,用ipconfig,ping等是获取不了自己的外网IP的,,
这个问题比较麻


LZ要的是本机IP就可以了
13 Re 11楼 发表于 2008-09-19 20:04 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
楼主的标题写的很清楚:
如何提取本机的ip地址,以及ip地址的最后一位?
论坛跳转: