muslimdogger |
17-11-2014 12:47 2430696 |
получение Ip c wget
нужно получить 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 2430765 |
вот этот фрагмент не работает у меня
|
Чем Вас не устроил выложенный мною код выше, что Вы делаете запрос с иного ресурса, возвращающего сложный html-документ (вместо одной строки в моём примере), пишете его в файл (вместо перенаправления на консоль в моём примере) и пытаетесь делать разбор?
|
muslimdogger |
17-11-2014 14:56 2430780 |
мне нужно этот айпи передать в значения
ваш код все делает и принимает, но скрипт, почему то, отказывается дальше работать
|
Покажите весь Ваш код. Обозначьте в нём места, где будет использоваться полученный внешний 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 2430903 |
и вопрос в догонку: как в файле с помощью findstr найти айпи адрес?
|
Прочитав документацию. Плюс — это зависит от файла.
Я так понял, что перенос процедуры Вы также не осилили?
|
muslimdogger |
17-11-2014 20:45 2431044 |
файл будет такого вида -
я вшил ваш код в скрипт, как раз таки, сделал чтоб он записывал его в файл, сейчас хочу с findstr прочитать айпи.
может через одно место, но главное что мне так понятно будет
|
Цитата:
Цитата muslimdogger
как раз таки, сделал чтоб он записывал его в файл »
|
Ну нахрена ж… Зачем? Для определения IP-адреса не нужно записывать полученное содержимое в файл. Оно просто направляется сразу на консоль и оттуда разбирается по «for /f». Изучайте приведённый мною выше код, пока не поймёте.
Не знаю деталей, но, скорее всего, соглашусь.
|
muslimdogger |
17-11-2014 22:24 2431113 |
все таки прошу помочь именно с вариантом записи айпи в файл и дальнейшим его чтением.
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 2431136 |
сейчас попробую, спасибо
|
Время: 02:51.
© OSzone.net 2001-