Как получить IP-адрес LAN для переменной в пакетном файле Windows

Я передаю аудио с моего ноутбука Windows 7 на звуковую карту, подключенную к маршрутизатору. У меня есть небольшой пакетный скрипт для начала потоковой передачи.

REM Kill any instances of vlc taskkill /im vlc.exe "c:\Program Files\VideoLAN\VLC\vlc.exe" <parameters to start http streaming> REM Wait for vlc TIMEOUT /T 10 REM start playback on router plink -ssh me@192.168.1.1 -pw password killall -9 madplay plink -ssh me@192.168.1.1 -pw password wget -q -O - http://192.1.159:8080/audio | madplay -Q --no-tty-control - & 

Как вы видите, HTTP-поток жестко закодирован. Было бы неплохо получить адрес динамически, чтобы повторно использовать скрипт на других машинах. Есть идеи?

8 Solutions collect form web for “Как получить IP-адрес LAN для переменной в пакетном файле Windows”

Вот простой пример, который получит адрес ipv4 текущего компьютера:

 :: find IP address in scriptable format :: !!Windows 7 specific at the moment!! :: Note this only works with one adapter connected @echo off :: get ipv4 ipconfig | findstr IPv4 > ipadd.txt :: For statement to find the numbers for /F "tokens=14" %%i in (ipadd.txt) do ( @echo %%i ) del ipadd.txt /Q 

Это просто эхо из IP, но вы можете интегрировать его.

Windows XP с одним слоем (без IPv6), обратите внимание на «findstr 192.» – вам может потребоваться удалить настройку (я использую его для выбора необходимого интерфейса):

 for /F "tokens=2 delims=:" %%i in ('"ipconfig | findstr IP | findstr 192."') do SET LOCAL_IP=%%i echo %LOCAL_IP% 

Вот команда вывода шлюза по умолчанию, а затем команда для вывода IP-адреса ноутбука, локального IP-адреса. Просто вы видите эти 2 команды

Затем команду, чтобы выгрузить локальный IP-адрес, который вы хотите, в файл с именем afile.

Затем команда для выгрузки файла в переменную среды, называемую

Вы можете скачать grep из gnuwin32

 C:\>ipconfig | grep -E -i "def" | grep -E -o "[0-9][0-9.]+" 192.168.1.254 C:\>ipconfig | grep -E -i "IP Address" | grep -E -o "[0-9][0-9.]+" 192.168.1.67 C:\>ipconfig | grep -E -i "IP Address" | grep -E -o "[0-9][0-9.]+" > afile C:\>for /f %f in ('type afile') do set a=%f C:\>set a=192.168.1.67 <-- that got executed automatically C:\>echo %a% 192.168.1.67 C:\> 

Таким образом, ваш файл bat может быть dothis.bat, и он будет иметь эти 2 строки и, конечно, вы можете изменить имя файла (afile) и переменную окружения (a). Обратите внимание, что в файле bat вы используете %% f (или любую другую букву) вместо% f

 ipconfig | grep -E -i "IP Address" | grep -E -o "[0-9][0-9.]+" > afile for /f %%f in ('type afile') do set a=%%f 

Более простая альтернативная вторая строка для файла с двумя строками

 for /f %%f in (afile) do set a=%%f 

Ответил на мой вопрос …

 for /f "tokens=3" %%i in ('ping %computername% -4 -n 1 ^| findstr Reply') do ( set localipwc=%%i ) for /f "tokens=1 delims=:" %%j in ("%localipwc%") do ( set localip=%%j ) echo "%localip%" 

Вот еще лучше … обратите внимание, что команда -4 в команде ping заставляет IPv4 на Win7 и игнорируется в XP … (: ~ 11 в имени переменной расширяется, начиная с 11 символов в var)

 @echo off cls for /f "tokens=1 delims=:" %%j in ('ping %computername% -4 -n 1 ^| findstr Reply') do ( set localip=%%j ) echo Your local IP is:"%localip:~11%" 

Пример вывода:

Ваш локальный IP-адрес: «192.168.220.133»

Windows 7 с одним слоем:

 for /F "tokens=14" %i in ('"ipconfig | findstr IPv4"') do SET LOCAL_IP=%i 

Основываясь на предыдущих ответах и ​​отмечая, что второй не будет работать, если у вас есть локальный IP-адрес, не начинающийся с 192, мы получаем:

 for /F "tokens=2 delims=:" %i in ('"ipconfig | findstr IPv4"') do SET LOCAL_IP=%i 

И если мы хотим поместить его в пакетный файл:

 @for /F "tokens=2 delims=:" %%i in ('"ipconfig | findstr IPv4"') do set LOCAL_IP=%%i @echo Detected: Local IP = [%LOCAL_IP%] 

(Пример результата: Обнаружен: локальный IP = [10.67.1.205])

Но если нам нужна переменная NOT, чтобы содержать пробел раньше, тогда нам нужно (win7, если есть проблема с 13 …):

 @for /F "tokens=13 delims=\ " %%i in ('"ipconfig | findstr IPv4"') do set LOCAL_IP=%%i @echo Detected: Local IP = [%LOCAL_IP%] 

(Пример результата: Обнаружен: локальный IP = [10.67.1.205])

 for /f "tokens=3" %%i in ('ping %computername% -4 -n 1 ^| findstr Reply') do ( echo %%i ) 

Работает как на Windows 7, так и на Windows XP.

 @echo off net use J: /d /y rem Aqui se colocan manualmente ip set matriz=172.25.103.* set uno=172.25.20.* set sur=172.25.18.* set alamor=172.25.4.* set autobanco=172.25.19.* set cariamanga=172.25.7.* set catacocha=172.25.3.* set catamayo=172.25.2.* set pangui=172.25.44.* set macara=172.25.5.* set hipervalle=172.25.35.* set gualaquiza=172.25.21.* set quito=172.25.10.* set yanzatza=172.25.9.* set zamora=172.25.8.* set recreo=172.25.38.* set machala=172.25.103.196 rem Estas dos líneas extraen el ip real del equipo a una variable for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IPv4" ') do set ip=%%j set ip=%ip:~1% echo %ip% pause rem Compara la dirección IP si esta ok va a Formas Agencias sino sale a ERROR1 if /I "%matriz%=="%ip%" goto matriz1 else if /I "%uno%"=="%ip%" goto uno1 else if /I "%sur%"=="%ip%" goto sur1 else if /I "%alamor%"=="%ip%" goto alamor1 else if /I "%autobanco%"=="%ip%" goto autobanco1 else if /I "%cariamanga%"=="%ip%" goto cariamanga1 else if /I "%catacocha%"=="%ip%" goto catacocha1 else if /I "%catamayo%"=="%ip%" goto catamayo1 else if /I "%pangui%"=="%ip%" goto pangui1 else if /I "%macara%"=="%ip%" goto macara1 else if /I "%hipervalle%"=="%ip%" goto hipervalle1 else if /I "%gualaquiza%"=="%ip%" goto gualaquiza1 else if /I "%quito%"=="%ip%" goto quito1 else if /I "%yanzatza%"=="%ip%" goto yanzatza1 else if /I "%zamora%"=="%ip%" goto zamora1 else if /I "%recreo%"=="%ip%" goto recreo1 else if /I "%machala%"=="%ip%" goto machala1 else goto error1 rem Mapeo de Unidad de red hacia Matriz :matriz1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Agencia Uno :uno1 IF EXIST S:\fgen1001.fmx goto fin net use S: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Agencia Sur :sur1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Alamor :alamor1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Autobanco :autobanco1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Cariamanga :cariamanga1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Catacocha :catacocha1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Catamayo :catamayo1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Pangui :pangui1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Macara :macara1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Hipervalle :hipervalle1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Gualaquiza :gualaquiza1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Quito :quito1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Yanzatza :yanzatza1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Zamora :zamora1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Recreo :recreo1 IF EXIST J:\fgen1001.fmx goto fin net use J: \\172.25.0.35\Forms exit rem Mapeo de Unidad de red hacia Machala :machala1 IF EXIST M:\fgen1001.fmx goto fin net use M: \\172.25.0.35\Forms exit :error1 echo IP INCORRECTA pause exit :fin exit 
  • Несколько сетевых интерфейсов на одном сетевом адаптере в Windows
  • Каков фактический IP-адрес моего компьютера
  • Значение приоритета в команде «ip rule»
  • Обнаружение конфликтов IP в сети
  • Доступ к веб-сайту через общедоступный IP-адрес веб-серверов с ПК в пределах одной локальной сети
  • Если маршрутизатор отключен на несколько дней, у вас есть IP-адрес в отношении провайдера?
  • Сделать динамический IP-адрес фиксированным?
  • Зачем мне обновлять свой IP-адрес каждый раз, когда я запускаю свой компьютер, прежде чем я смогу получить доступ в Интернет?
  • Что происходит, когда заканчиваются все IP-адреса?
  • Как установить точку беспроводного доступа EDUP EP-2906?
  • Являются ли IP-адреса с и без ведущих нулей одинаковыми?
  • Давайте будем гением компьютера.