Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] вычисление айпи через батник (http://forum.oszone.net/showthread.php?t=329595)

Darkar25 06-09-2017 20:13 2763181

вычисление айпи через батник
 
Вложений: 2
как-то раз я нашел такую шняжку...она крч пытается найти айпи...но она ищет совершенно не то что нужно...
вот 2 скрина и код...
на 1 скрине написано то что он ищет и то что мне нужно
на втором скрине то что мы видим при запуске батника
Код:

@Echo Off

chcp 437 >nul
FOR /F "tokens=2 delims=:" %%a in ('ipconfig ^| find "Gateway"') do set _IP=%%a
chcp 866 >nul

echo "%_IP%"
pause


Iska 06-09-2017 20:29 2763189

Darkar25, Вы даже не то выделили, что он ищет.



На самом деле он сначала находит то, что отмечено жёлтым, и присваивает его переменной окружения _IP, а затем находит то, что отмечено голубым, и переписывает значение переменной окружения _IP новым найденным значением.

У Вас несколько сетевых подключений. Какой из IP4-адресов Вам нужен?

Цитата:

Цитата Darkar25
как-то раз я нашел такую шняжку »

«Как-то раз нашёл» — это взял в соседней теме :)?

Darkar25 06-09-2017 20:38 2763196

Цитата:

Цитата Darkar25:
как-то раз я нашел такую шняжку »
«Как-то раз нашёл» — это взял в соседней теме ?
в соседней теме?возможно...........
Цитата:

Цитата Iska
У Вас несколько сетевых подключений. Какой из IP4-адресов Вам нужен? »

верхний

megaloman 07-09-2017 10:34 2763271

Darkar25, Вы определитесь, что Вам нужно: адрес шлюза или интерфейса? То, что Вы показали, ищет шлюз ("Gateway"), причём последний из всех интерфейсов.
Если надо первый Ip-адрес, то:
Код:

@Echo Off
CLS

chcp 437 >nul
FOR /F "tokens=1* delims=:" %%a in ('ipconfig ^| find "IPv4 Address"') do set _IP=%%b &GoTo :Continue
:Continue
FOR /F "tokens=*" %%b in ("%_IP%") do set _IP=%%b
chcp 866 >nul

Echo %_IP%
PAUSE

Второй For добавлен для того, чтобы убрать лидирующий пробел в Ip -адресе. Возможно, это Вам помешает.

Iska 07-09-2017 10:41 2763275

megaloman, интерфейса. То, что на его скриншоте зелёненьким обведено. Причём, я бы не задавался порядком, а всё же ориентировался на имя соединения что ли.

megaloman 07-09-2017 12:19 2763289

Если из свойств сети в свойствах конкретного сетевого соединения, скопировать наименование интерфейса, например у меня
"Сетевое подключение Intel(R) PRO/Wireless 3945ABG", то можно так:
Код:

@Echo Off
CLS

FOR /F "tokens=2 delims={}" %%a in ('wmic NICCONFIG list ip ^| find "Сетевое подключение Intel(R) PRO/Wireless 3945ABG"') Do set "_IP=%%~a"

Echo %_IP%
PAUSE

Не знаю, что будет, если на одном интерфейсе несколько IP.

Iska 07-09-2017 12:26 2763292

Цитата:

Цитата megaloman
Не знаю, что будет, если на одном интерфейсе несколько IP. »

Дык, задайте и посмотрите ;). В принципе, такое в жизни простого пользователя — достаточно большая редкость.

megaloman 07-09-2017 12:32 2763295

Iska, а может хватит обычного пинга, по видимому, надо получить IP основного сетевого интерфейса
Код:

@Echo Off
CLS

FOR /F "tokens=2 delims=[]" %%b in ('ping -4 -n 1 %ComputerName%') Do If Not "%%a"=="" (set _IP=%%b &GoTo :Continue)
:Continue

Echo %_IP%
PAUSE

Цитата:

Цитата Iska
Дык, задайте и посмотрите »

:clever-ma- откровенно ленюсь, так как непонятна задача в целом, зачем это затевается.


Время: 08:00.

Время: 08:00.
© OSzone.net 2001-