EBobkunov

setnet.bat

Sep 17th, 2026
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.76 KB | Source Code | 0 0
  1. @echo off
  2. rem ==========================================================================
  3. rem  setnet.bat - настройка сетевого интерфейса утилитой netsh
  4. rem
  5. rem  Запуск с параметрами:
  6. rem    setnet.bat dhcp   "Ethernet"
  7. rem    setnet.bat static "Ethernet" 192.168.10.50 255.255.255.0 192.168.10.1 8.8.8.8 1.1.1.1
  8. rem    setnet.bat show   "Ethernet"
  9. rem  Запуск без параметров - интерактивное меню.
  10. rem
  11. rem ==========================================================================
  12. chcp 866 >nul
  13. setlocal enabledelayedexpansion
  14. title Настройка сетевого интерфейса (netsh)
  15.  
  16. rem --- проверка прав администратора ---
  17. net session >nul 2>&1
  18. if errorlevel 1 (
  19.     echo [!] Нужны права администратора. Запустите cmd от имени администратора.
  20.     pause
  21.     exit /b 1
  22. )
  23.  
  24. set "MODE=%~1"
  25. set "IFACE=%~2"
  26.  
  27. if "%MODE%"==""       goto MENU
  28. if /i "%MODE%"=="dhcp"   goto DHCP
  29. if /i "%MODE%"=="static" goto STATIC
  30. if /i "%MODE%"=="show"   goto SHOW
  31. if /i "%MODE%"=="help" goto USAGE
  32. if "%MODE%"=="/?"     goto USAGE
  33. echo [!] Неизвестный режим: %MODE%
  34. goto USAGE
  35.  
  36. rem ==================== интерактивное меню ====================
  37. :MENU
  38. echo.
  39. echo ============ Доступные интерфейсы ============
  40. netsh interface ipv4 show interfaces
  41. echo.
  42. set /p IFACE="Имя интерфейса (например Ethernet): "
  43. if "%IFACE%"=="" goto MENU
  44.  
  45. :MENU2
  46. echo.
  47. echo ============ Что сделать? ============
  48. echo   1 - Получить настройки автоматически (DHCP)
  49. echo   2 - Задать настройки вручную (статически)
  50. echo   3 - Показать текущие настройки
  51. echo   0 - Выход
  52. echo.
  53. set /p CH="Ваш выбор: "
  54. if "%CH%"=="1" goto DHCP
  55. if "%CH%"=="2" goto ASKSTATIC
  56. if "%CH%"=="3" goto SHOW
  57. if "%CH%"=="0" exit /b 0
  58. echo [!] Нет такого пункта.
  59. goto MENU2
  60.  
  61. rem ==================== диалог для статики ====================
  62. :ASKSTATIC
  63. echo.
  64. set /p IPADDR="IP-адрес        : "
  65. set /p MASK="Маска подсети   : "
  66. set /p GW="Основной шлюз   : "
  67. set /p DNS1="DNS основной    : "
  68. set /p DNS2="DNS запасной (Enter - пропустить): "
  69. goto STATIC_APPLY
  70.  
  71. rem ==================== режим DHCP ====================
  72. :DHCP
  73. if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
  74. echo.
  75. echo [*] Включаю автоматическое получение адреса на "%IFACE%" ...
  76. netsh interface ipv4 set address name="%IFACE%" source=dhcp
  77. netsh interface ipv4 set dnsservers name="%IFACE%" source=dhcp
  78. echo [*] Обновляю аренду ...
  79. ipconfig /renew "%IFACE%" >nul 2>&1
  80. echo [OK] Интерфейс переведён на DHCP.
  81. goto SHOW
  82.  
  83. rem ==================== режим STATIC ====================
  84. :STATIC
  85. set "IPADDR=%~3"
  86. set "MASK=%~4"
  87. set "GW=%~5"
  88. set "DNS1=%~6"
  89. set "DNS2=%~7"
  90. if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
  91. if "%IPADDR%"=="" goto ASKSTATIC
  92.  
  93. :STATIC_APPLY
  94. echo.
  95. echo [*] Применяю статические настройки на "%IFACE%" ...
  96. if "%GW%"=="" set "GW=none"
  97. if /i "%GW%"=="none" (
  98.     netsh interface ipv4 set address name="%IFACE%" source=static address=%IPADDR% mask=%MASK%
  99. ) else (
  100.     netsh interface ipv4 set address name="%IFACE%" source=static address=%IPADDR% mask=%MASK% gateway=%GW% gwmetric=1
  101. )
  102. if errorlevel 1 (
  103.     echo [!] Не удалось задать адрес. Проверьте имя интерфейса и параметры.
  104.     exit /b 1
  105. )
  106. if not "%DNS1%"=="" netsh interface ipv4 set dnsservers name="%IFACE%" source=static address=%DNS1% register=primary validate=no
  107. if not "%DNS2%"=="" netsh interface ipv4 add dnsservers name="%IFACE%" address=%DNS2% index=2 validate=no
  108. echo [OK] Статические настройки применены.
  109. goto SHOW
  110.  
  111. rem ==================== показать конфигурацию ====================
  112. :SHOW
  113. if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
  114. echo.
  115. echo ============ Конфигурация "%IFACE%" ============
  116. netsh interface ipv4 show config name="%IFACE%"
  117. echo.
  118. echo ============ Проверка через ipconfig ============
  119. ipconfig /all
  120. exit /b 0
  121.  
  122. rem ==================== справка ====================
  123. :USAGE
  124. echo.
  125. echo Использование:
  126. echo   setnet.bat dhcp   "Ethernet"
  127. echo   setnet.bat static "Ethernet" IP MASK GW [DNS1] [DNS2]
  128. echo   setnet.bat show   "Ethernet"
  129. echo   setnet.bat                     (интерактивное меню)
  130. exit /b 1
  131.  
Advertisement
Add Comment
Please, Sign In to add comment