PDA

Показать полную графическую версию : получение Ip c wget


muslimdogger
17-11-2014, 12:47
нужно получить ip адрес с помощью wget.exe и дать ему значение ip, дальше скрипт будет использовать это значение
получать айпи с сайтов по определению айпи адреса

Iska
17-11-2014, 13:16
Например:
@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

Iska
17-11-2014, 14:38
Из письма в PM:
приветствую. ты отправил мне код, спасибо. но мне его нужно вжить в уже существующий.
если бы я тебе отправил фрагмент моего кода, который якобы должен определять айпи, не мог бы ты свой под него подстроить?
И Вам не хворать. Не отправлял, пожалуйста. В курсе, Вы об этом писали выше. Вопрос не понятен, а так, да — выкладывайте код, посмотрим.

muslimdogger
17-11-2014, 14:42
-- -вот этот фрагмент не работает у меня

Iska
17-11-2014, 14:52
Чем Вас не устроил выложенный мною код выше, что Вы делаете запрос с иного ресурса, возвращающего сложный html-документ (вместо одной строки в моём примере), пишете его в файл (вместо перенаправления на консоль в моём примере) и пытаетесь делать разбор?

muslimdogger
17-11-2014, 14:56
мне нужно этот айпи передать в значения
ваш код все делает и принимает, но скрипт, почему то, отказывается дальше работать

Iska
17-11-2014, 15:16
Покажите весь Ваш код. Обозначьте в нём места, где будет использоваться полученный внешний IP-адрес.

Iska
17-11-2014, 16:24
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 найти айпи адрес?

Iska
17-11-2014, 19:27
Прочитав документацию. Плюс — это зависит от файла.

Я так понял, что перенос процедуры Вы также не осилили?

muslimdogger
17-11-2014, 20:45
файл будет такого вида - http://i65.fastpic.ru/big/2014/1117/9a/4a76538133166a0ee1721df8ad8b7c9a.jpg

я вшил ваш код в скрипт, как раз таки, сделал чтоб он записывал его в файл, сейчас хочу с findstr прочитать айпи.
может через одно место, но главное что мне так понятно будет

Iska
17-11-2014, 21:39
как раз таки, сделал чтоб он записывал его в файл »
Ну нахрена ж… Зачем? Для определения IP-адреса не нужно записывать полученное содержимое в файл. Оно просто направляется сразу на консоль и оттуда разбирается по «for /f». Изучайте приведённый мною выше код, пока не поймёте.

может через одно место »
Не знаю деталей, но, скорее всего, соглашусь.

muslimdogger
17-11-2014, 22:24
все таки прошу помочь именно с вариантом записи айпи в файл и дальнейшим его чтением.
ps файл используется в последствии

Iska
17-11-2014, 22:47
Помогаю:
@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