所有内容均为测试可用,真实
当前位置:绿茶加糖-郭保升 > 软件安全 > 正文

批处理bat实现将自动获取的地址设置为默认

07-22 软件安全

我们公司有一个开发部门,他们研发各种机械工艺,嵌入式编程等等,当然这个里面信息也非常的机密 ,所以网络也非常的复杂不能上外网,就是内部上网也划分的非常细致,只能访问公司内部特定授权的几台服务器,连内部通讯都是断开的,今天这个不是问题,因为他们经常要出差,去分公司办公等,所以需要变更他们电脑的IP地址,不然无法使用公司内部网络,和机械设备联网调试。
奈何他们部门30来号人,还有三分之一的女性,使用电脑办公是没有问题,要频繁更改IP地址有很多人就不会,而且设置也不方便,所以咨询帽帽能否有更好的解决办法。
部门有要求,我们就尽量满足,用个批处理脚本就可以满足了,这是运行后的截图:
图片
含四个功能:
1、设置静态IP地址。
2、设置自动获取IP地址
3、显示当前IP地址
4、刷新DNS缓存
需要设置静态IP地址,输入数字1,就按上面提示输入即可,非常方便。
图片
如果设置有误,或者DNS错误,可以直接重置DNS缓存。
 
本文章我就不提供现成的文件了,因为要改动编码,以前提供都是很多人发信息给我怎么改,哎,提供以下代码,复制就行。
复制以下代码,做成批处理脚本继续往下看。
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
@echo offtitle 帽帽电脑专用IP设置工具-增强版color 0A
:: IP地址设置工具 - 增强版:: 功能:交互式设置网络连接的IP地址配置:: 注意:需要管理员权限运行
:: 检查管理员权限net session >nul 2>&1if %errorLevel% neq 0 (    echo 错误:此脚本需要管理员权限才能运行。    echo 请右键点击脚本,选择"以管理员身份运行"    pause    exit /b 1)
:: 定义网络连接名称(请根据实际情况修改)set "ConnectionName=Ethernet0"
:: 检查网络连接是否存在netsh interface show interface | find "%ConnectionName%" >nulif %errorlevel% neq 0 (    echo 错误:未找到名为 "%ConnectionName%" 的网络连接。    echo 请修改脚本中的 ConnectionName 变量为正确的网络连接名称。    pause    exit /b 1)
:MENUclsecho ==================================================echo           IP地址设置工具 - 增强版echo ==================================================echo.echo  当前网络连接: %ConnectionName%echo.echo  1. 设置静态IP地址echo  2. 设置为自动获取IP地址echo  3. 显示当前IP配置echo  4. 刷新DNS缓存echo  5. 退出echo.echo ==================================================echo.
choice /C 12345 /N /M "请选择操作 [1-5]: "
if errorlevel 5 goto EXITif errorlevel 4 goto FLUSH_DNSif errorlevel 3 goto SHOW_IPif errorlevel 2 goto SET_DHCPif errorlevel 1 goto SET_STATIC_IP
:SET_STATIC_IPclsecho ==================================================echo               设置静态IP地址echo ==================================================echo.
:INPUT_IPset /p ip="请输入IP地址 [例如: 192.168.1.100]: "call :VALIDATE_IP %ip%if %errorlevel% neq 0 (    echo 错误:无效的IP地址格式,请重新输入。    goto INPUT_IP)
:INPUT_MASKset /p mask="请输入子网掩码 [例如: 255.255.255.0]: "call :VALIDATE_MASK %mask%if %errorlevel% neq 0 (    echo 错误:无效的子网掩码格式,请重新输入。    goto INPUT_MASK)
:INPUT_GATEWAYset /p gateway="请输入默认网关 [例如: 192.168.1.1]: "if not "%gateway%"=="" (    call :VALIDATE_IP %gateway%    if %errorlevel% neq 0 (        echo 错误:无效的默认网关格式,请重新输入。        goto INPUT_GATEWAY    ))
:INPUT_DNS1set /p dns1="请输入首选DNS服务器 [例如: 8.8.8.8]: "if not "%dns1%"=="" (    call :VALIDATE_IP %dns1%    if %errorlevel% neq 0 (        echo 错误:无效的DNS服务器格式,请重新输入。        goto INPUT_DNS1    ))
:INPUT_DNS2set /p dns2="请输入备用DNS服务器 [例如: 8.8.4.4]: (留空则不设置) "if not "%dns2%"=="" (    call :VALIDATE_IP %dns2%    if %errorlevel% neq 0 (        echo 错误:无效的DNS服务器格式,请重新输入。        goto INPUT_DNS2    ))
echo.echo 确认设置:echo.echo   IP地址:       %ip%echo   子网掩码:     %mask%echo   默认网关:     %gateway%echo   首选DNS:      %dns1%echo   备用DNS:      %dns2%echo.
choice /C YN /N /M "是否应用上述设置? [Y/N]: "if errorlevel 2 goto MENUif errorlevel 1 goto APPLY_STATIC
:APPLY_STATICecho.echo 正在设置IP地址,请稍候...
:: 设置IP地址和子网掩码netsh interface ip set address name="%ConnectionName%" static %ip% %mask% %gateway% 1
:: 设置DNS服务器if not "%dns1%"=="" (    netsh interface ip set dns name="%ConnectionName%" static %dns1% primaryelse (    netsh interface ip set dns name="%ConnectionName%" dhcp)
if not "%dns2%"=="" (    netsh interface ip add dns name="%ConnectionName%" %dns2% index=2)
echo.echo IP地址设置完成!echo.pausegoto MENU
:SET_DHCPclsecho ==================================================echo             设置为自动获取IP地址echo ==================================================echo.
choice /C YN /N /M "确定要将 %ConnectionName% 设置为自动获取IP地址吗? [Y/N]: "if errorlevel 2 goto MENUif errorlevel 1 goto APPLY_DHCP
:APPLY_DHCPecho.echo 正在设置为自动获取IP地址,请稍候...
:: 设置为自动获取IP地址netsh interface ip set address name="%ConnectionName%" dhcp
:: 设置为自动获取DNS服务器netsh interface ip set dns name="%ConnectionName%" dhcp
echo.echo 已成功设置为自动获取IP地址!echo.pausegoto MENU
:SHOW_IPclsecho ==================================================echo              当前IP配置信息echo ==================================================echo.
ipconfig /all | findstr /i /c:"%ConnectionName%" /c:"IPv4" /c:"子网掩码" /c:"默认网关" /c:"DNS服务器"
echo.pausegoto MENU
:FLUSH_DNSclsecho ==================================================echo                刷新DNS缓存echo ==================================================echo.
ipconfig /flushdns
echo.echo DNS缓存已刷新!echo.pausegoto MENU
:EXITclsecho ==================================================echo                感谢使用IP设置工具echo ==================================================echo.exit /b 0
:VALIDATE_IP:: 验证IP地址格式set "ip=%~1"set "octets=0"set "valid=1"
:: 检查是否有4个点分十进制部分for /f "tokens=1-4 delims=." %%a in ("%ip%"do (    set /a octets+=1    set "octet=%%a"
    :: 检查每个部分是否为数字    for /f "delims=0123456789" %%i in ("!octet!"do set "valid=0"
    :: 检查每个部分是否在0-255之间    if !octet! LSS 0 set "valid=0"    if !octet! GTR 255 set "valid=0")
:: 检查是否正好有4个部分if %octets% neq 4 set "valid=0"
exit /b %valid%
:VALIDATE_MASK:: 验证子网掩码格式set "mask=%~1"call :VALIDATE_IP %mask%if errorlevel 1 exit /b 1
:: 检查是否为有效的子网掩码值set "valid_masks=255.0.0.0 255.128.0.0 255.192.0.0 255.224.0.0 255.240.0.0 255.248.0.0 255.252.0.0 255.254.0.0 255.255.0.0 255.255.128.0 255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252"
for %%m in (%valid_masks%) do (    if "%mask%"=="%%m" exit /b 0)
exit /b 1
把上面代码复制下来,存储到记事本,保存为后缀名为.bat编码选择“ANSI”,编码不选会乱码。
 
最后就做好了,当然可以自定义编辑图标,属性等多个地方可以好看点。

版权保护: 本文由 绿茶加糖-郭保升 原创,转载请保留链接: https://www.guobaosheng.com/computer/372.html