Войти

Показать полную графическую версию : [решено] Как определить IP и записать его в переменную? (OS: Windows Vista)


Voshal
22-05-2009, 18:49
Приветствую всех! Как можно сделать, чтобы при запуске .bat файла, он определял IP и записывал его в переменную? Операционная система: Windows Vista.

Делал такое для Windows XP, всё работает, только не работает в сборках Zver и FuckYouBill. Делал таким способом:

for /F "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP-"') do @SET prov=%%i

Подскажите пожалуйста. Заранее благодарю.

El Sanchez
22-05-2009, 20:51
Попробуйте так

for /f "tokens=2* delims== " %%a in ('netsh diag show ip net*') do @set prov=%%a

P.S. IMHO, если сборка не сделана тобой самим, с полным контролем того,чего ты в ней меняешь, то все иное от лукавого :)

Voshal
22-05-2009, 22:20
Спасибо, но выводит локальный IP адрес, а мне нужно ip инета.
А на Windows Vista выводит following

El Sanchez
23-05-2009, 14:49
Я так понял нужно получить внешний ip. Тогда пробуйте так:

@echo off
echo Set oHTML = CreateObject("MSXML2.XMLhttp")>"%~dp0getip.vbs"
echo oHTML.Open "GET", "http://www.whatismyip.com/automation/n09230945.asp", False>>"%~dp0getip.vbs"
echo oHTML.Send>>"%~dp0getip.vbs"
echo sText = oHTML.ResponseText>>"%~dp0getip.vbs"
echo WScript.Echo ^"^" ^& sText>>"%~dp0getip.vbs"
echo Set oHTML = Nothing>>"%~dp0getip.vbs"
echo WScript.Quit>>"%~dp0getip.vbs"
for /f %%a in ('%windir%\system32\cscript.exe //nologo "%~dp0getip.vbs"') do set prov=%%a
del /f /q "%~dp0getip.vbs" 1>nul 2>&1

P.S. На Висте не проверял, нет у меня ее.

Voshal
23-05-2009, 16:02
Вы правильно поняли, а можно сделать, чтобы было определение внешнего IP адреса, только не соединяясь со сторонними сайтами? Какими-то стандартными внутренними методами. Или на крайний случай соединяться со своим сайтом.

Busla
24-05-2009, 22:15
Voshal, конечно нельзя - внешний IP принадлежит другому компьютеру и вообще никак не виден "изнутри"

gromex
16-05-2010, 23:18
Подниму тему, вопрос фактически тот же что и у создателя темы, только с той лишь разницей, что решение надо в windows 7 и ип я хочу брать с интерфейса "bro":

for /f "tokens=2* delims== " %%A in ('netsh diag show ip bro*') do (set A=%%A)
Дело в том, что в 7ке у netsh нету прямого контекста diag, из-за чего ком. строка ругаеццо на отсутствие команды..
Как мне записать ip "bro" в %%A ?

Petya V4sechkin
17-05-2010, 11:43
gromex, воспользуйтесь фильтрами (http://tools.oszone.net/Vadikan/faq.html#filters) по названию темы по ip.

http://oszone.net/user_img/050214130343/filters.png

Результат (http://forum.oszone.net/forumdisplay.php?f=102&filter_string=ip&filter_by=title)




© OSzone.net 2001-2012