Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- rem ==========================================================================
- rem setnet.bat - настройка сетевого интерфейса утилитой netsh
- rem
- rem Запуск с параметрами:
- rem setnet.bat dhcp "Ethernet"
- 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
- rem setnet.bat show "Ethernet"
- rem Запуск без параметров - интерактивное меню.
- rem
- rem ==========================================================================
- chcp 866 >nul
- setlocal enabledelayedexpansion
- title Настройка сетевого интерфейса (netsh)
- rem --- проверка прав администратора ---
- net session >nul 2>&1
- if errorlevel 1 (
- echo [!] Нужны права администратора. Запустите cmd от имени администратора.
- pause
- exit /b 1
- )
- set "MODE=%~1"
- set "IFACE=%~2"
- if "%MODE%"=="" goto MENU
- if /i "%MODE%"=="dhcp" goto DHCP
- if /i "%MODE%"=="static" goto STATIC
- if /i "%MODE%"=="show" goto SHOW
- if /i "%MODE%"=="help" goto USAGE
- if "%MODE%"=="/?" goto USAGE
- echo [!] Неизвестный режим: %MODE%
- goto USAGE
- rem ==================== интерактивное меню ====================
- :MENU
- echo.
- echo ============ Доступные интерфейсы ============
- netsh interface ipv4 show interfaces
- echo.
- set /p IFACE="Имя интерфейса (например Ethernet): "
- if "%IFACE%"=="" goto MENU
- :MENU2
- echo.
- echo ============ Что сделать? ============
- echo 1 - Получить настройки автоматически (DHCP)
- echo 2 - Задать настройки вручную (статически)
- echo 3 - Показать текущие настройки
- echo 0 - Выход
- echo.
- set /p CH="Ваш выбор: "
- if "%CH%"=="1" goto DHCP
- if "%CH%"=="2" goto ASKSTATIC
- if "%CH%"=="3" goto SHOW
- if "%CH%"=="0" exit /b 0
- echo [!] Нет такого пункта.
- goto MENU2
- rem ==================== диалог для статики ====================
- :ASKSTATIC
- echo.
- set /p IPADDR="IP-адрес : "
- set /p MASK="Маска подсети : "
- set /p GW="Основной шлюз : "
- set /p DNS1="DNS основной : "
- set /p DNS2="DNS запасной (Enter - пропустить): "
- goto STATIC_APPLY
- rem ==================== режим DHCP ====================
- :DHCP
- if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
- echo.
- echo [*] Включаю автоматическое получение адреса на "%IFACE%" ...
- netsh interface ipv4 set address name="%IFACE%" source=dhcp
- netsh interface ipv4 set dnsservers name="%IFACE%" source=dhcp
- echo [*] Обновляю аренду ...
- ipconfig /renew "%IFACE%" >nul 2>&1
- echo [OK] Интерфейс переведён на DHCP.
- goto SHOW
- rem ==================== режим STATIC ====================
- :STATIC
- set "IPADDR=%~3"
- set "MASK=%~4"
- set "GW=%~5"
- set "DNS1=%~6"
- set "DNS2=%~7"
- if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
- if "%IPADDR%"=="" goto ASKSTATIC
- :STATIC_APPLY
- echo.
- echo [*] Применяю статические настройки на "%IFACE%" ...
- if "%GW%"=="" set "GW=none"
- if /i "%GW%"=="none" (
- netsh interface ipv4 set address name="%IFACE%" source=static address=%IPADDR% mask=%MASK%
- ) else (
- netsh interface ipv4 set address name="%IFACE%" source=static address=%IPADDR% mask=%MASK% gateway=%GW% gwmetric=1
- )
- if errorlevel 1 (
- echo [!] Не удалось задать адрес. Проверьте имя интерфейса и параметры.
- exit /b 1
- )
- if not "%DNS1%"=="" netsh interface ipv4 set dnsservers name="%IFACE%" source=static address=%DNS1% register=primary validate=no
- if not "%DNS2%"=="" netsh interface ipv4 add dnsservers name="%IFACE%" address=%DNS2% index=2 validate=no
- echo [OK] Статические настройки применены.
- goto SHOW
- rem ==================== показать конфигурацию ====================
- :SHOW
- if "%IFACE%"=="" set /p IFACE="Имя интерфейса: "
- echo.
- echo ============ Конфигурация "%IFACE%" ============
- netsh interface ipv4 show config name="%IFACE%"
- echo.
- echo ============ Проверка через ipconfig ============
- ipconfig /all
- exit /b 0
- rem ==================== справка ====================
- :USAGE
- echo.
- echo Использование:
- echo setnet.bat dhcp "Ethernet"
- echo setnet.bat static "Ethernet" IP MASK GW [DNS1] [DNS2]
- echo setnet.bat show "Ethernet"
- echo setnet.bat (интерактивное меню)
- exit /b 1
Advertisement
Add Comment
Please, Sign In to add comment