请问,ADSL自动换IP并记录所换的IP的批处理怎么写?

请问,ADSL自动换IP并记录所换的IP的批处理怎么写?
2025-04-19 17:48:22
推荐回答(1个)
回答1:

第一步:把如下代码存成e:\ipchange.bat
for /f "usebackq delims=: tokens=2" %%i in (`"ipconfig|find "IP Address" "`) do set ipaddr=%%i
for /f "delims=. tokens=1,2,3,4*" %%i in ("%ipaddr%") do set /a ipaddr1=%%i &&set /a ipaddr2=%%j && set /a ipaddr3=%%k && set /a ipaddr4=%%l
set /a ipaddr4=%ipaddr4%+1
if %ipaddr4%==255 (netsh interface ip set address name="本地连接" source=static addr=192.168.1.2 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1) else netsh interface ip set addres name="本地连接" source=static addr=192.168.1.%ipaddr4% mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1

第二步:用计划任务调用e:\ipchange.bat,把如下代码存成.bat运行之:
@echo off
setlocal enabledelayedexpansion
set do=e:\ipchange.bat
set m=5
set s=9999
set time=%time:~0,8%
set time=%time::=%
set a=%time:~0,2%
set b=%time:~2,2%
set c=%time:~-2%
set num=0

:top
set d=!b!

if "%b:~0,1%"=="0" set b=%b:~1,1%
set /a b+=%m%
if %b% equ 60 (

set d=00
set /a a+=1
echo !a!:!d!.!c!

if not "!do!"=="n" (if !s! gtr !num! (at !a!:!d!.!c! /interactive !do!))
set /a num+=1
if !num! equ !s! pause&goto :eof

set b=!d!

goto top
)
if %b% gtr 60 (

set e=!b!

set /a b/=60

set /a a+=!b!

set /a d=!e!-60*!b!
if "!d:~1,1!"=="" set d=0!d!
echo !a!:!d!.!c!

if not "!do!"=="n" (if !s! gtr !num! (at !a!:!d!.!c! /interactive !do!))
set /a num+=1
if !num! equ !s! pause&goto :eof

set b=!d!

goto top
goto :eof
) else (
if "!b:~1,1!"=="" set b=0!b!
echo !a!:!b!.!c!

if not "!do!"=="n" (if !s! gtr !num! (at !a!:!b!.!c! /interactive !do!))
set /a num+=1
if !num! equ !s! pause&goto :eof

goto top
goto :eof
)
程序说明:1。你的系统计划任务必须开启状态(默认就是开启的,呵呵)
2。因为懒,没有写退出的句子,若不想继续变动ip了,运行at /delete /y就可以了。
希望能帮到你!