![]() |
Периодическое определение WAN адреса ADSL модема!
Вот задача! Есть модем ADSL TP-LINK TW-8101(по-моему:))
У него есть web интерфейс(запрашивает авторизацию), есть telnet (запрашивает авторизацию)!! Нужно с периодичностью раз в пол-часа, проверять WAN адрес модема, и отправлять его по почте, если он не совпадает с последним, ну или постоянно отправлять по почте! Информацию думаю можно взять либо с web интерфейса, либо через телнет, либо вобще с левого сайта который определяет IP! Как бы всё это в жизнь воплотить! Например если на странице http:\\192.168.1.1\adslinfo\wan , есть строка IP address: 000.000.000.000 ! Но страница запрашивает учётку, к примеру admin/admin ! Ну и как всё это по почте выслать, например через учётку на маиле или на гугле! |
Dump,
Честно говоря, я не совсем понял что Вам надо, если Ваш текущий IP-адрес, то вот пример из русской справки: Код:
#include <Inet.au3> |
_GetIP () зависит от стороннего ресурса. Т.е. надёжность под сомнением, к сожалению.
Быть может есть вариант выдрать текущий IP у модема (роутера) посредством telnet (в фоновом режиме конечно же)? |
NewOLDi,
Если Вы не доверяете библиотечным функциям (на мой взгляд зря не доверяете), то вот Вам код от CreatoR Код:
#include <Inet.au3> PS По-моему, IP-адрес присваивает провайдер, т.е. без стороннего ресурса все равно не обойтись (может быть я ошибаюсь.) PPS Посмотрел в Inet.au3 функцию _GetIP(). Она делает то же самое, только с адреса http://checkip.dyndns.org/?rnd1= |
madmasles, я думаю, автор под сторонними ресурсами понимает как раз эти сайты. но если уж озадачиться телнетом, то можно запускать telnet.exe в фоновом режиме, предварительно взяв управление над StdOut потоком и парсить ответ, то тоже должно помочь.
если с реализацией алгоритма возникнут проблемы, пиши. |
kaster абсолютно прав, я действительно сомневаюсь в безотказности сторонних ресурсов (Инет-сайты, которые отдают твой IP-адрес). А библиотечные функции я ооочень люблю, Вы даже не представляете как!
На эту тему вспомнил анекдот: Цитата:
Сегодня постараюсь опросить свой ADSL Zyxel на предмет внешнего IP в фоне через telnet. Если получится - выложу код сюда. |
NewOLDi, боюсь именно telnet.exe от МС не получится. т.к. он то ли не дает доступ к своему потоку I/O, то ли использует какой-то особый, не опознаваемый AutoIt, вобщем не дает управлять. на оф. форуме тоже так пишут. единственное отправлять команды через send, но тогда про фон можно забыть. или юзать сторонние утилиты аля telnet. в голову пришло только Console telnet.
|
2 All ?
Правой кнопкой мыши по значку сети в трее см. прикрепленный скрин. Это я к тому, что в системе где-то прописан IP-адрес, но где? Это вопрос к гуру. |
kaster, это печально :(
madmasles, если используется полноценный ADSL роутер, то операционная система не в состоянии показать реальный внешний IP-адрес; дальше локального адреса Вашей сетевой карты и локального адреса Вашего роутера ОС уйти не может. Ваш пример основан на обычном ADSL USB модеме, там всё проще... |
madmasles, это не всегда так, особенно если между внешним инетом и клиентом несколько маршрутизаторов/мостов. хотя, в случае именно одного роутера (а только в этом случае можно считать что опрошенная инфа будет действительно внешним ИП) можно делать и так. в противном случае, только внешний ресурсы. как вариант, могу еще посоветовать вот этот сайт http://tools.whois.net/yourip/ - его надежность вне всяких сомнений. думаю по домену догадаетесь почему
|
kaster,
А в моем случае можно получить IP-адрес? И, если можно, то как? |
madmasles, ipconfig /all :)
|
NewOLDi,
Туплю. :sorry: |
Цитата:
Собственно говоря,*стандартным решением этой проблемы вроде бы как является DynDNS , поддержка которого есть даже на более дешёвых устройствах. Придумать красивое имя и сообщить его нужным людям,*чтобы они не мучились со вводом изменяющегося IP-адреса. |
El Scorpio, я думаю, об этом и подобных сервисах известно всем. Мы тут пытаемся средствами AutoIt выдернуть IP без использования посредников. Пока безуспешно, у меня всё остановилось на том, что AutoIt не способен читать вывод MS Telnet :(
|
Простите за долгое отсутствие.....на работе упал DC, так что не до скриптов было!
Так вот! El Scorpio, помоему я слышал про DynDNS, не очень хорошие отзывы, но спасибо, возьму на заметку! NewOLDi, Да хочется, очень хочется, средствами AutoIT! Только я вот думаю, зачем telnet! У модема есть свой http сервер! И есть строка в меню Status: WAN: ххх.ххх.ххх.ххх ! Вот эту строку можно как то вытащить с помощью AutoIT _INetGetSource ???? Но предварительно нужно авторизоваться!!! А если запрашивать адрес вида http://192.168.1.1/stataus/?user=admin&pass=admin ну что-то вроде этого, как там запрос строится, нужно взглянуть! Модема под рукой нет, он дома! Тогда авторизация по идее не нужна. Или я наивный ? :)))) Приведенный выше код с _GetIp() походу спотыкается на проксе! |
Время: 01:25. |
Время: 01:25.
© OSzone.net 2001-