Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   получение Ip c wget (http://forum.oszone.net/showthread.php?t=291110)

muslimdogger 17-11-2014 12:47 2430696

получение Ip c wget
 
нужно получить ip адрес с помощью wget.exe и дать ему значение ip, дальше скрипт будет использовать это значение
получать айпи с сайтов по определению айпи адреса

Iska 17-11-2014 13:16 2430716

Например:
Код:

@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 2430764

Из письма в PM:
Цитата:

приветствую. ты отправил мне код, спасибо. но мне его нужно вжить в уже существующий.
если бы я тебе отправил фрагмент моего кода, который якобы должен определять айпи, не мог бы ты свой под него подстроить?
И Вам не хворать. Не отправлял, пожалуйста. В курсе, Вы об этом писали выше. Вопрос не понятен, а так, да — выкладывайте код, посмотрим.

muslimdogger 17-11-2014 14:42 2430765

Код:

-- -
вот этот фрагмент не работает у меня

Iska 17-11-2014 14:52 2430774

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

muslimdogger 17-11-2014 14:56 2430780

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

Iska 17-11-2014 15:16 2430800

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

Iska 17-11-2014 16:24 2430848

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 найти айпи адрес?

Iska 17-11-2014 19:27 2430966

Прочитав документацию. Плюс — это зависит от файла.

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

muslimdogger 17-11-2014 20:45 2431044

файл будет такого вида -

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

Iska 17-11-2014 21:39 2431078

Цитата:

Цитата muslimdogger
как раз таки, сделал чтоб он записывал его в файл »

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

Цитата:

Цитата muslimdogger
может через одно место »

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

muslimdogger 17-11-2014 22:24 2431113

все таки прошу помочь именно с вариантом записи айпи в файл и дальнейшим его чтением.
ps файл используется в последствии

Iska 17-11-2014 22:47 2431131

Помогаю:
Код:

@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.

Время: 02:51.
© OSzone.net 2001-