В PhP5 есть способ получить IP-адреса всех моих серверов?

0

В основном я хочу загружать загрузку баланса через интерфейсы 6+. Мой сервер работает с Apache2 и PHP5, в настоящее время мне приходится вручную вводить все IP-адреса серверов в массив php файлов. Есть ли способ сделать это автоматически?

Для каждой ссылки для загрузки код в настоящее время выглядит примерно так:

<?php
$a = array("192.168.2.x", "192.168.2.x", "192.168.2.x", "192.168.2.x", "192.168.2.x", "192.168.2.x"); 
$b = rand(0,count($a)-1);
echo "http://". $a[$b] . "/yourDownload.zip";
?> 

Серверная машина имеет несколько IP-адресов, по одному для каждого сетевого адаптера. Ситуация здесь для большой вечеринки, где мы хотим распространять файлы с основного сервера всем игрокам. Каждому игроку требуется около 20 ГБ файлов, поэтому серьезная балансировка нагрузки не очень важна, но способность сервера подключаться и воспроизводиться. В настоящее время мне приходится вручную вводить IP-адреса в файл php каждый раз, когда мы используем другой маршрутизатор или DHCP, который требует времени и легко забывается, пока это не станет проблемой.

В приведенном выше коде я хотел бы, чтобы массив в строке 2 автоматически получал IP-адреса сетевых адаптеров, а не жестко закодированные.

  • 0
    Это неясно. Имеет ли машина, на которой выполняется сценарий, несколько IP-адресов, или целевая машина, с которой этот сценарий загружает файлы. Это имеет большое значение.
  • 0
    Серверный компьютер имеет несколько IP-адресов, по одному для каждого сетевого адаптера. Ситуация здесь для большой локальной вечеринки, где мы хотим распространять файлы с главного сервера всем игрокам. Каждому игроку требуется около 20 ГБ файлов, поэтому серьезная балансировка нагрузки не так уж важна, как способность подключаемого сервера. В настоящее время мне приходится вручную вводить IP-адреса в сам файл php каждый раз, когда мы используем другой маршрутизатор или DHCP, что требует времени и легко забывается, пока не станет проблемой.
Теги:
apache2
lamp

1 ответ

0

В первую очередь, как вы будете поддерживать баланс? используя случайную функцию, он не будет работать

Здесь у вас есть 6 серверов, поэтому вам нужно что-то делать с приоритетной базой

код:

<?php

$pages = array('192.168.2.1'=>16.66, '192.168.2.2'=>16.66,'192.168.2.3'=>16.66,'192.168.2.4'=>16.66,'192.168.2.5'=>16.66,'192.168.2.5'=>16.66,'192.168.2.6'=>16.66);


function getServerByWeight(array $weightedValues) {
    $rand = mt_rand(1, (int) array_sum($weightedValues));

    foreach ($weightedValues as $key => $value) {
      $rand -= $value;
      if ($rand <= 0) {
        return $key;
      }
    }
 }


$page = getServerByWeight($pages);


echo "http://".$page. "/yourDownload.zip";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню