Board logo

标题: [网络连接] 请问批处理如何实现adsl拨号并过滤重复IP? [打印本页]

作者: hulala    时间: 2021-2-20 16:45     标题: 请问批处理如何实现adsl拨号并过滤重复IP?

请问批处理如何实现adsl拨号并过滤重复IP?
24小时不使用重复ip,拨号后检查到使用过的IP,等待几秒后自动重新拨号。
给出成品留下收款码!
作者: zaqmlp    时间: 2021-2-20 18:00

  1. @echo off&setlocal enabledelayedexpansion
  2. set "name=宽带连接"
  3. set "user=用户名"
  4. set "password=宽带密码"
  5. set "sleep=30"
  6. set "output=IP.ini"
  7. cd /d "%~dp0"
  8. if exist "%output%" (
  9.     for /f %%a in ('type "%output%"') do set _#%%~a=1
  10. )
  11. :loop
  12. set "ip="
  13. rasdial "%name%" /disconnect
  14. rasdial "%name%" "%user%" "%password%"||goto loop
  15. >nul ping /n 3 0
  16. set "f="
  17. set "ip="
  18. for /f "delims=" %%a in ('ipconfig') do (
  19.     set "line=%%a"
  20.     if defined f (
  21.         if "!line:IPv4 地址=!" neq "!line!" (
  22.             for /f "tokens=1* delims=:" %%b in ("%%a") do (
  23.                 for /f %%d in ("%%~c") do set "ip=%%~d"
  24.             )
  25.             goto break
  26.         )
  27.     )
  28.     if "!line:%name%=!" neq "!line!" (
  29.         set f=1
  30.     )
  31. )
  32. :break
  33. if defined ip (
  34.     echo;%ip%
  35.     if not defined _#%ip% (
  36.         set _#%ip%=1
  37.         >>"%output%" echo;%ip%
  38.         goto end
  39.     )
  40. )
  41. timeout /t %sleep% /nobreak
  42. goto loop
  43. :end
  44. pause
  45. exit
复制代码

作者: hulala    时间: 2021-2-20 19:46

回复 2# zaqmlp


    获取到的ip是内网ip,10开头的,不是外网ip
作者: zaqmlp    时间: 2021-2-20 19:54

回复 3# hulala
连接后,打开一个cmd窗口,执行ipconfig,截图看看
作者: hulala    时间: 2021-2-20 20:00

回复 4# zaqmlp
作者: zaqmlp    时间: 2021-2-20 20:05

回复 5# hulala

你的宽带ip就是10呀,你说的ip是什么ip,怎么查看的
作者: hulala    时间: 2021-2-20 20:06

回复 6# zaqmlp


    不是的,去ip138.com看不是的
作者: hulala    时间: 2021-2-20 20:09

回复 6# zaqmlp


    https://api.ipify.org/?format=json
或者你对接这个
作者: hulala    时间: 2021-2-20 20:10

回复 6# zaqmlp


    http://ip.42.pl/raw
这也行,哪个快用哪个
作者: zaqmlp    时间: 2021-2-20 20:27

回复 9# hulala
  1. /*&cls
  2. @echo off&setlocal enabledelayedexpansion
  3. set "name=宽带连接"
  4. set "user=用户名"
  5. set "password=宽带密码"
  6. set "sleep=30"
  7. set "output=IP.ini"
  8. cd /d "%~dp0"
  9. if exist "%output%" (
  10.     for /f %%a in ('type "%output%"') do set _#%%~a=1
  11. )
  12. :loop
  13. set "ip="
  14. rasdial "%name%" /disconnect
  15. rasdial "%name%" "%user%" "%password%"||goto loop
  16. >nul ping /n 3 0
  17. for /f %%a in ('cscript -nologo -e:jscript "%~f0"') do set ip=%%a
  18. :break
  19. if defined ip (
  20.     echo;%ip%
  21.     if not defined _#%ip% (
  22.         set _#%ip%=1
  23.         >>"%output%" echo;%ip%
  24.         goto end
  25.     )
  26. )
  27. timeout /t %sleep% /nobreak
  28. goto loop
  29. :end
  30. pause
  31. exit
  32. */
  33. var http=new ActiveXObject('Msxml2.ServerXMLHTTP');
  34. http.open('GET', 'http://ip.42.pl/raw', false);
  35. http.send();
  36. var html=http.responseText;
  37. var m=html.match(/(?:\d+\.){3}\d+/);
  38. if(m){WSH.echo(m[0]);}
复制代码

作者: locoman    时间: 2021-2-23 10:59

谢谢无私分享,收藏学习。




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