Учимся получать список IP адресов с интерфейсов сервера.





По воле необходимости столкнулся с CURL-ом.
Я с ним и раньше сталкивался. Но не то чтобы вопросы или траблы были.
Вот просто сейчас понадобилось юзать запросы с разных IP адресов. Заметил, что есть два способа менять IP - через сокеты и через CURL.
Курл меня привлёк своей универсальностью и красотой реализации.


Итак, имеем систему на FreeBSD 6 и PHP 5.
Как можно узнать из скупой документации, используемый IP указывается:
curl_setopt($ch, CURLOPT_INTERFACE, "XXX.XXX.XXX.XXX");

Однако в интернете умалчивается, как получить список IP адресов на интерфейсах.
Что-ж...
В никсах это делается простой командой ifconfig.
Результат выполнения команды примерно такой:

rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500	options=8<VLAN_MTU>	inet 82.146.XXX.XXX netmask 0xffffffff broadcast 82.146.XXX.XXX	inet 78.24.XXX.XXX netmask 0xffffffff broadcast 78.24.XXX.XXX	inet 82.146.XXX.XXX netmask 0xffffffff broadcast 82.146.XXX.XXX	inet 82.146.XXX.XXX netmask 0xffffffff broadcast 82.146.XXX.XXX	inet 82.146.XXX.XXX netmask 0xffffffff broadcast 82.146.XXX.XXX	inet 78.24.XXX.XXX netmask 0xffffffff broadcast 78.24.XXX.XXX	inet 78.24.XXX.XXX netmask 0xffffffff broadcast 78.24.XXX.XXX	ether XX:XX:XX:XX:XX:XX	media: Ethernet autoselect (100baseTX <full-duplex>)	status: activelo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500	Opened by PID 564tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500	Opened by PID 565	Opened by PID 565

Казалось бы...

$ifconfig=system("ifconfig");$ifconfig=explode("\n", $ifconfig);... 

НО!
PHP очень неадекватно разбирает по строкам результат вывода system();
И тогда я решился на небольшую хитрость, манипулируя буфером вывода:

<?php  ob_start();  $ips=array();  $ifconfig=system("ifconfig");  echo $ifconfig;  $ifconfig=ob_get_contents();  ob_end_clean();  $ifconfig=explode(chr(10), $ifconfig);  for ($i=0; $i<count($ifconfig); $i++) {    $t=explode(" ", $ifconfig[$i]);    if ($t[0]=="\tinet") {      array_push($ips, $t[1]);    }       }  for ($i=0; $i<count($ips); $i++) {    echo $ips[$i]."\n";  }?>

Результат:

82.146.XXX.XXX78.24.XXX.XXX82.146.XXX.XXX82.146.XXX.XXX82.146.XXX.XXX78.24.XXX.XXX78.24.XXX.XXX

Теперь мы можем спокойно автоматизировать всё с учётом возможных смен айпи адресов на сервере.















Вам это будет интересно!

  • Учимся рисовать паттерны.
  • P love! :) учимся готовить ПЛОВ!
  • 10 способов получать деньги, ничего не делая…..
  • Сколько нужно получать чтобы взять Ипотеку в Москве
  • Мой список. Что я могу сказать по:
  • Последние новости

    Слово

    Назови человека свиньей, и он захрюкает. Пословица Проживая данную нам жизнь, мы все время находимся в гуще энергий, как положительных, так и отрицательных. По этическим нормам слово обладает определенной силой, следовательно, когда мы клевещем на человека, судим, обзываем, мы «де...
    Читать далее »

    ЭГРЕГОР

    Энергия эгрегора – квантовая структура, которая сформирована мыслями, знаниями и чувствами всего человечества – бывшего, настоящего и будущего. Эгрегор – это квантово лептонная скоррелированная структура, рожденная похожими мы...
    Читать далее »

    Как открыть свои чакры

    Открытие чакр увеличивает поток энергии в теле и вокруг него и, следовательно, улучшает наше физическое, ментальное и эмоциональное здоровье. Представьте себе каждую чакру по очереди. Они вращаются и становятся больше в размере. Начинайте с 1 – й чакры (пусть они вращаются в любую сторону, обычно они вращаются в разные). В то же ...
    Читать далее »

    Смерть или новая жизнь

    Из разговора двух зародышей в утробе матери: – Как ты думаешь, есть ли жизнь после родов? – Не знаю, оттуда еще никто не возвращался… Сравнительно недавно появились сенсационные сообщения доктора Раймонда А. Моуди о том, что ученые зарегистрировали фа...
    Читать далее »

    Чакры

    Чакры являются основными энергетическими органами биополя. Они контролируют нашу деятельность во внешнем мире, а каждая из чакр несет ответственность за определенную сферу деятельности. Основное предназначение их заключается в том, что они несут ответственность за поддержание энергообмена живого организма с окружающей средой через специальные каналы связи. Таким образом, при нарушении процесса энергообмена у нас возникают болезни и проблемы...
    Читать далее »

    Три колонны космоса

    Показания: нарушение обменных процессов, снижение иммунитета, обновление сил. Методика исполнения. Средний и сердечный пальцы правой руки кладут на аналогичные пальцы левой руки. Мизинец левой руки кладут возле основания тыльной поверхности среднего и безымянного пальцев правой руки, затем все фиксируется мизинцем правой руки. Кон...
    Читать далее »

    Заключение

    Лучше зажечь свечу, чем проклинать сгущающуюся тьму. Дзенское изречение Вот и написана книга. Мне хочется верить, что вам она обязательно поможет в познании себя, утверждении своего «Я», определении своего места во Вселенной. На ум приходит китайская пословица: «Если не менять направление, мы наверняка достигнем того, к чему идем». А мы идем к Свету, Добру и Счастью. Мы ...
    Читать далее »