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

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

NoIZz 15-10-2013 15:22 2234898

Помогите узнать текущий IP-адрес компьютера в локальной сети в скрипте
 
и загнать его в переменную

Столько всего перепробЫвал - не выходит каменный цветочек (((
А время поджимает

Нужно исключительно для BAT/CMD

Спасибо!

Iska 15-10-2013 16:22 2234934

Цитата:

Цитата NoIZz
Столько всего перепробЫвал »

Перечислите, что именно «перепробовали».

Сетей может быть несколько. IP-адресов — тоже.

NoIZz 15-10-2013 16:55 2234948

Отвечаю
поиск тут
нашел много разных - но в одних условиях работают - в других нет
а если например у машины 2 ифейса то скрипты выдают всякую шнягу
а если на 7ке используется 2 ip на интерфейсе?

мне нужен первый ip приоритетного интерфейса

и что бы работало на 7, vista и xp

http://forum.oszone.net/thread-187989.html

Вот это не везде и не у всех работает

Руками в 20 школах (бесплатно - тк благотворительно) настроить почти 1000 хостов - руками - - да еще удаленно - я и мои коллеги повесятся (((

Iska 15-10-2013 18:56 2235022

Цитата:

Цитата NoIZz
мне нужен первый ip приоритетного интерфейса »

Что есть «интерфейс», и по каким признакам Вы определяете, что он «приоритетный»?

Цитата:

Цитата NoIZz
и что бы работало на 7, vista и xp »

Тогда Вам лучше использовать консольный скрипт WSH, наподобие:
читать дальше »
Код:

Option Explicit

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim strIPAddress


strComputer = "."

Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")

For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration Where IPEnabled = 'True'")
        For Each strIPAddress In objSWbemObjectEx.IPAddress
                WScript.Echo strIPAddress
               
                Exit For
        Next

        Exit For
Next

Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0


— первый встретившийся адрес на первом из включённых адаптеров, в виде:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
        `2^>nul cscript.exe //nologo "0001.vbs"`
) do set sIPAddress=%%~i

if defined sIPAddress echo IP Address: [%sIPAddress%]

endlocal
exit /b 0


Хотя, на мог взгляд, проще всё целиком сделать на WSH.

megaloman 15-10-2013 20:00 2235053

Код:

@Echo Off
cls

FOR /F "usebackq tokens=2 delims=[]" %%i IN (`Ping -4 -n 1 %computername%`) DO Set Ip=%%i & GoTo :Continue
:Continue
Echo %Ip%

Вроде бы работает (проверил на 7 и на xp)
Тестировал на компьютере не в домене.

NoIZz 15-10-2013 22:00 2235125

megaloman, Компы в домене - ip соотвественно ближайшего контроллера - их 3
если делать через %COMPUTERNAME%.%userdnsdomain% - то на 7ке - если включен ipv6 лезет v6й ipшник

NoIZz 15-10-2013 22:16 2235130

FOR /F "usebackq tokens=2 delims=[]" %%i IN (`Ping -4 -n 1 %computername%.%userdnsdomain%`) DO Set IP=%%i & GoTo :Continue
:Continue
так работает
но не под системной учеткой
хотя - это обойдем


Время: 19:18.

Время: 19:18.
© OSzone.net 2001-