Показать полную графическую версию : Помогите узнать текущий IP-адрес компьютера в локальной сети в скрипте
и загнать его в переменную
Столько всего перепробывал - не выходит каменный цветочек (((
А время поджимает
Нужно исключительно для BAT/CMD
Спасибо!
Столько всего перепробывал »
Перечислите, что именно «перепробовали».
Сетей может быть несколько. IP-адресов — тоже.
Отвечаю
поиск тут
нашел много разных - но в одних условиях работают - в других нет
а если например у машины 2 ифейса то скрипты выдают всякую шнягу
а если на 7ке используется 2 ip на интерфейсе?
мне нужен первый ip приоритетного интерфейса
и что бы работало на 7, vista и xp
http://forum.oszone.net/thread-187989.html
Вот это не везде и не у всех работает
Руками в 20 школах (бесплатно - тк благотворительно) настроить почти 1000 хостов - руками - - да еще удаленно - я и мои коллеги повесятся (((
мне нужен первый ip приоритетного интерфейса »
Что есть «интерфейс», и по каким признакам Вы определяете, что он «приоритетный»?
и что бы работало на 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
@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)
Тестировал на компьютере не в домене.
megaloman, Компы в домене - ip соотвественно ближайшего контроллера - их 3
если делать через %COMPUTERNAME%.%userdnsdomain% - то на 7ке - если включен ipv6 лезет v6й ipшник
FOR /F "usebackq tokens=2 delims=[]" %%i IN (`Ping -4 -n 1 %computername%.%userdnsdomain%`) DO Set IP=%%i & GoTo :Continue
:Continue
так работает
но не под системной учеткой
хотя - это обойдем
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.