Показать полную графическую версию : получение Ip c wget
muslimdogger
17-11-2014, 12:47
нужно получить ip адрес с помощью wget.exe и дать ему значение ip, дальше скрипт будет использовать это значение
получать айпи с сайтов по определению айпи адреса
Например:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=^<" %%i in (
`wget.exe -qO- "http://api.wipmania.com/"`
) do set sExternalIP=%%i
if defined sExternalIP (
echo [%sExternalIP%]
) else (
echo Can't determine external IP
exit /b 1
)
endlocal
exit /b 0
Из письма в PM:
приветствую. ты отправил мне код, спасибо. но мне его нужно вжить в уже существующий.
если бы я тебе отправил фрагмент моего кода, который якобы должен определять айпи, не мог бы ты свой под него подстроить?
И Вам не хворать. Не отправлял, пожалуйста. В курсе, Вы об этом писали выше. Вопрос не понятен, а так, да — выкладывайте код, посмотрим.
muslimdogger
17-11-2014, 14:42
-- -вот этот фрагмент не работает у меня
Чем Вас не устроил выложенный мною код выше, что Вы делаете запрос с иного ресурса, возвращающего сложный html-документ (вместо одной строки в моём примере), пишете его в файл (вместо перенаправления на консоль в моём примере) и пытаетесь делать разбор?
muslimdogger
17-11-2014, 14:56
мне нужно этот айпи передать в значения
ваш код все делает и принимает, но скрипт, почему то, отказывается дальше работать
Покажите весь Ваш код. Обозначьте в нём места, где будет использоваться полученный внешний IP-адрес.
muslimdogger, по результатам переписки я могу констатировать только одно: не имея кода, я не могу давать какие-либо конкретные советы.
Вот Вам процедура «:GetExternalIP» и пример её использования:
@echo off
call :GetExternalIP
echo %ExternalIP%
exit /b 0
rem ==========================================================================
rem ==========================================================================
:GetExternalIP
setlocal enableextensions enabledelayedexpansion
set sProcName=%~0
for /f "usebackq delims=^<" %%i in (
`wget.exe -qO- "http://api.wipmania.com/"`
) do set sExternalIP=%%i
if not defined sExternalIP echo Can't determine external IP
endlocal & set %sProcName:~4%=%sExternalIP%
exit /b 0
rem ==========================================================================
можете использовать её в Вашем пакетном файле. Надеюсь, с её переносом-то проблем не возникнет?
muslimdogger
17-11-2014, 17:54
и вопрос в догонку: как в файле с помощью findstr найти айпи адрес?
Прочитав документацию. Плюс — это зависит от файла.
Я так понял, что перенос процедуры Вы также не осилили?
muslimdogger
17-11-2014, 20:45
файл будет такого вида - http://i65.fastpic.ru/big/2014/1117/9a/4a76538133166a0ee1721df8ad8b7c9a.jpg
я вшил ваш код в скрипт, как раз таки, сделал чтоб он записывал его в файл, сейчас хочу с findstr прочитать айпи.
может через одно место, но главное что мне так понятно будет
как раз таки, сделал чтоб он записывал его в файл »
Ну нахрена ж… Зачем? Для определения IP-адреса не нужно записывать полученное содержимое в файл. Оно просто направляется сразу на консоль и оттуда разбирается по «for /f». Изучайте приведённый мною выше код, пока не поймёте.
может через одно место »
Не знаю деталей, но, скорее всего, соглашусь.
muslimdogger
17-11-2014, 22:24
все таки прошу помочь именно с вариантом записи айпи в файл и дальнейшим его чтением.
ps файл используется в последствии
Помогаю:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=^<" %%i in (
`wget.exe -qO- "http://api.wipmania.com/"`
) do set sExternalIP=%%i
if defined sExternalIP (
echo %sExternalIP%
>"%~dp0External IP.txt" echo %sExternalIP%
) else (
echo Can't determine external IP
exit /b 1
)
endlocal
exit /b 0
Файл «External IP.txt» будет создан в том же каталоге, что и пакетный файл. Последующее чтение первой строки из этого файла:
@echo off
setlocal enableextensions enabledelayedexpansion
set sExternalIPFile=%~dp0External IP.txt
if exist "%sExternalIPFile%" >nul <"%sExternalIPFile%" set /p sExternalIP=
if defined sExternalIP (
echo %sExternalIP%
) else (
echo Can't read external IP from [%sExternalIPFile%].
exit /b 1
)
endlocal
exit /b 0
muslimdogger
17-11-2014, 22:59
сейчас попробую, спасибо
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.