Board logo

标题: [网络连接] 批处理怎样定义IP后自动定义网关? [打印本页]

作者: dangui    时间: 2009-12-24 10:50     标题: 批处理怎样定义IP后自动定义网关?

准备写一个批处理:

用户只要输入IP,然后会自动修改IP和网关的IP,如输入IP为192。168。1。88,则网关的IP为192。168。1。1

如输入IP为192。168。0。88,则网关的IP为192。168。0。1

而网关的IP无需用户输入。批处理中如何根据定义IP后自动定义网关????????

代码:
#  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #   #  #  #  #  #  #  #  #  #  #
@echo off
echo.
echo.
echo    设置本机IP地址
echo.
echo.
set /p Addr=请输入您的IP地址:
set /p Gateway

echo.
echo    正在修改设置,请稍候……
::修改IP地址
netsh interface Ip set address name="本地连接" source=static Gwmetric=0 Gateway=%Gateway% Addr=%Addr% mask=255.255.255.0   >nul
::修改DNS
Netsh interface IP Set dns "本地连接" static 202.102.10.220 primary   >nul
echo.   完成
#  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #   #  #  #  #  #  #  #  #  #  #
set /p Gateway   如何根据IP自动定义????(不用输入)
作者: Undead    时间: 2009-12-24 11:20     标题: 回复 1楼 的帖子

简单点,就是截取IP地址192.168.1或192.168.0,然后给后面加个1,不就行了。
复杂点,就是要通过IP和子网掩码位数计算。
作者: dangui    时间: 2009-12-24 11:50

原帖由 Undead 于 2009-12-24 11:20 发表
简单点,就是截取IP地址192.168.1或192.168.0,然后给后面加个1,不就行了。


如何截取呢????
作者: caruko    时间: 2009-12-24 12:37

for /f  "delims=." %%a in ("192.168.0.25")do set gateway=%%a.%%b.%%c.1
作者: Undead    时间: 2009-12-24 12:45

  1. @echo off
  2. echo.
  3. echo.
  4. echo    设置本机IP地址
  5. echo.
  6. echo.
  7. set /p Addr=请输入您的IP地址:
  8. for /f  "tokens=1-3 delims=." %%a in ("%Addr%")do set Gateway=%%a.%%b.%%c.1
  9. echo.
  10. echo    正在修改设置,请稍候……
  11. ::修改IP地址
  12. netsh interface Ip set address name="本地连接" source=static Gwmetric=0 Gateway=%Gateway% Addr=%Addr% mask=255.255.255.0   >nul
  13. ::修改DNS
  14. Netsh interface IP Set dns "本地连接" static 202.102.10.220 primary   >nul
  15. echo.   完成
复制代码

作者: dangui    时间: 2009-12-24 13:12

原帖由 Undead 于 2009-12-24 12:45 发表
for /f  "tokens=1-3 delims=." %%a in ("%Addr%")do set Gateway=%%a.%%b.%%c.1


谢谢!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2