Страница 3 из 4

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 24 фев 2009, 14:59
nE0sIghT
Написал простенький скрипт для обновления ИП vfose.ru и dyndns.org на пыхпыхе
Отличительная особенность - не долбится обновлять ип, если он не изменился (это условие dyndns)

Код: Выделить всёРазвернуть
#!/usr/bin/php

<?php
$data_dir = "/etc/update_domains/";
$curl = "/usr/bin/curl";

$domains = array(
   'vfose' => array(
      array(
         'login'      => 'miranda-im',
         'pass'      => ''),
      array(
         'login'      => 'vortex',
         'pass'      => '')
   ),
   'dyndns' => array(
      array(
         'login'      => '',
         'pass'      => '',
         'domain'   => 'miranda-im.dyndns.org')
   )
);

if($data = file_get_contents('http://speed.san.ru/getip.shtml'))
{
   $start = strpos($data, 'Address:') + 9;
   $end = strpos($data, '</body');
   $fos_ip = substr($data, $start, $end - $start);

   foreach($domains['vfose'] as $domain)
   {
      $last_ip = @file_get_contents($data_dir . 'vfose.' . $domain['login']);

      if($fos_ip != $last_ip)
      {
         if(update_vfose($domain['login'], $domain['pass']))
            file_put_contents($data_dir . 'vfose.' . $domain['login'], $fos_ip);
      }
   }

   foreach($domains['dyndns'] as $domain)
   {
      $last_ip = @file_get_contents($data_dir . 'dyndns.' . $domain['domain']);

      if($fos_ip != $last_ip)
      {
         if(update_dyndns($domain['login'], $domain['pass'], $domain['domain'], $fos_ip))
            file_put_contents($data_dir . 'dyndns.' . $domain['domain'], $fos_ip);
      }
   }
}

function update_vfose($login, $pass)
{
   global $curl;

   $out = explode("\n", shell_exec("$curl --silent -F action=update -F name=$login -F pass=" . md5($pass) . " \"http://vfose.ru/updater.php\""));
   if(is_array($out) && count($out) > 2)
   {
      $out[0] = trim($out[0]);
      if($out[0] == 'UPDATE OK' || $out[0] == 'ERROR SAME IP')
      {
         return true;
      }
   }
   return false;
}

function update_dyndns($login, $pass, $domain, $ip = null)
{
   global $curl;

   $out = shell_exec("$curl --insecure \"https://$login:$pass@members.dyndns.org/nic/update?hostname=$domain" . ($ip ? "&myip=$ip" : "" ) . "\"");

   if(strpos($out, 'good') !== false || strpos($out, 'nochg') !== false)
   {
      return true;
   }
   return false;
}
?>

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 24 фев 2009, 21:57
Alexsandrit
у меня такой давно скрипт работает, он обновляет ип адреса на vfose.ru, но долбится до тех пор пока не обновится окончательно днс...

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 24 мар 2009, 22:34
zackiel
VorteX vFOSe.ru IPUpdater (win32|linux) не собирается

Код: Выделить всёРазвернуть
[root@localhost vipr-src]# sh build.sh                                 
configlib.cpp: In constructor ‘configlib::configlib(char*)’:           
configlib.cpp:33: ошибка: нет декларации ‘strlen’ в этой области видимости
configlib.cpp:44: ошибка: нет декларации ‘strncpy’ в этой области видимости
configlib.cpp: In member function ‘void configlib::SaveConfig(CFGARRAY*, char*)’:
configlib.cpp:122: ошибка: нет декларации ‘strlen’ в этой области видимости     
ipupdater.cpp: In member function ‘void ipupdater::check()’:                     
ipupdater.cpp:40: предупреждение: deprecated conversion from string constant to ‘char*’
ipupdater.cpp: In member function ‘char* ipupdater::GetExtAddr(char*)’:               
ipupdater.cpp:49: предупреждение: deprecated conversion from string constant to ‘char*’
ipupdater.cpp: In member function ‘char* ipupdater::ReceiveHTTPResponse(char*, u_short, CFGARRAY*)’:                                                                           
ipupdater.cpp:175: предупреждение: deprecated conversion from string constant to ‘char*’
ipupdater.cpp: In member function ‘int ipupdater::UpdateDomain(char*, char*, char*)’:   
ipupdater.cpp:195: предупреждение: deprecated conversion from string constant to ‘char*’
ipupdater.cpp: In member function ‘void ipupdater::UpdateAllDomains()’:                 
ipupdater.cpp:293: предупреждение: deprecated conversion from string constant to ‘char*’
ipupdater.cpp:295: предупреждение: deprecated conversion from string constant to ‘char*’
socklib.cpp: In member function ‘void socklib::Start()’:                               
socklib.cpp:81: предупреждение: deprecated conversion from string constant to ‘char*’   
socklib.cpp:88: предупреждение: deprecated conversion from string constant to ‘char*’   
socklib.cpp:101: предупреждение: deprecated conversion from string constant to ‘char*’ 
socklib.cpp:106: предупреждение: deprecated conversion from string constant to ‘char*’ 
socklib.cpp: In member function ‘void socklib::Send(char*, size_t)’:                   
socklib.cpp:134: предупреждение: deprecated conversion from string constant to ‘char*’ 
socklib.cpp: In member function ‘char* socklib::RecvEx(char*, size_t*, char*)’:         
socklib.cpp:173: предупреждение: deprecated conversion from string constant to ‘char*’ 
socklib.cpp: In member function ‘void socklib::Accept(char*)’:                         
socklib.cpp:210: предупреждение: deprecated conversion from string constant to ‘char*’ 
terminal.cpp: In function ‘void* TerminalThread(void*)’:                               
terminal.cpp:34: ошибка: cast from ‘void*’ to ‘int’ loses precision                     
terminal.cpp: In function ‘void StartTerminal()’:                                       
terminal.cpp:55: предупреждение: deprecated conversion from string constant to ‘char*’ 
terminal.cpp:55: предупреждение: deprecated conversion from string constant to ‘char*’ 
terminal.cpp:56: предупреждение: deprecated conversion from string constant to ‘char*’ 
terminal.cpp:56: предупреждение: deprecated conversion from string constant to ‘char*’ 
terminal.cpp: In function ‘char* TermReadEx(char*)’:                                   
terminal.cpp:161: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp:167: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp: In function ‘void tcbAccept(char*)’:                                     
terminal.cpp:187: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp:189: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp:192: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp: In function ‘void tcbReceive(u_char*, size_t, char*)’:                   
terminal.cpp:223: предупреждение: deprecated conversion from string constant to ‘char*’
terminal.cpp:229: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:16: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp: In function ‘int main(int, char**)’:                                         
vipr.cpp:41: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp: In function ‘void SetUp()’:                                                   
vipr.cpp:83: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:99: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:112: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:122: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:131: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:139: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:145: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:153: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:160: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:166: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp: In function ‘void cbAdmin(char*)’:                                           
vipr.cpp:255: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:262: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:265: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:284: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:287: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:290: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:298: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:312: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:316: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:319: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:322: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:325: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:333: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:381: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:385: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:388: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:391: предупреждение: deprecated conversion from string constant to ‘char*’     
vipr.cpp:400: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:404: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:407: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:408: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:411: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:415: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:418: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:419: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:422: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:426: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:429: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:430: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:433: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:437: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:440: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:441: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:444: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:448: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:449: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:453: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:460: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:464: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:469: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:474: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:478: предупреждение: deprecated conversion from string constant to ‘char*’
vipr.cpp:483: предупреждение: deprecated conversion from string constant to ‘char*’
strip: 'bin/gnulinux/vipr': No such file

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 25 мар 2009, 00:32
zk
Можно использовать приведённый выше php скрипт, или ссылку для обновления из профиля.

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 25 мар 2009, 21:27
zackiel
я запустил IpUpdater под Wine вроде работает.

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 31 мар 2009, 20:06
nE0sIghT
zackiel
Прекрасно собирается...
Код: Выделить всёРазвернуть
ne0sight@vortex bin>gcc --version
gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.3)


Приаттачил бинарик к первому посту.

ИМХО vipr удобен под виндой, но не в лине, ибо есть cron и прозрачная работа с любым скриптовым языком.

IpUpdater под wine - жестко -))

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 22 мар 2010, 20:50
DeltaPLAN
Объясните нубу как этот скрипт запускать? Под виндой никак? И как адаптировать его для своего домена на vfose.ru?

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 22 мар 2010, 20:59
Rostov114
DeltaPLAN писал(а):Объясните нубу как этот скрипт запускать? Под виндой никак? И как адаптировать его для своего домена на vfose.ru?

Зачем тебе это?

Используй Infinity vFOSe.ru Ip Updater - Официальный клиент.

А вообще читай темы про запуск php скриптов из cmd.

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 24 мар 2010, 11:54
DeltaPLAN
Чтобы не обновлять Ip повторно, когда он уже обновлен. Так его не надо будет запоминать :) Я так понял, скрипт делает все автоматом
OFFTOPIC вот если б dyndns был доступен с ФОСа, я бы в модеме настроел и все. Единый логин для меня не вариант

Re: VorteX vFOSe.ru IPUpdater (win32|linux)

СообщениеДобавлено: 24 мар 2010, 12:13
Rostov114
DeltaPLAN писал(а):Чтобы не обновлять Ip повторно, когда он уже обновлен. Так его не надо будет запоминать :) Я так понял, скрипт делает все автоматом
OFFTOPIC вот если б dyndns был доступен с ФОСа, я бы в модеме настроел и все. Единый логин для меня не вариант

Не правильно ты понял.
IP не будет обновлен, когда он уже обновлен.

Сервер тебе просто ответит что IP не изменился.