• Как разложить число в PHP?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Можно без перебора всех вариантов стразу получать искомые IP-адреса - если идти не от чисел, а от суммы цифр каждого числа.
    В результате скрипт, в котором echo было заменено на ++$count, проработал менее 14 секунд и насчитал 112279695 адресов.
    $tbl = array_fill(0, 20, []);
    for ($i = 0; $i < 256; ++$i) { $tbl[intdiv($i, 100) + intdiv($i, 10) % 10 + $i % 10][] = $i; }
    for ($i = 0; $i <= 19; ++$i) {
        for ($j = 0; $j <= min(19, 28 - $i); ++$j) {
            for ($k = max(0, 28 - 19 - $i - $j); $k <= min(19, 28 - $i - $j); ++$k) {
                foreach($tbl[$i] as $v1) {
                    foreach($tbl[$j] as $v2) {
                        foreach($tbl[$k] as $v3) {
                            foreach($tbl[28 - $i - $j - $k] as $v4) {
                                echo $v1, '.', $v2, '.', $v3, '.', $v4, "\n";
                            }
                        }
                    }
                }
            }
        }
    }

    Сумма цифр числа в диапазоне 0..255 имеет диапазон значений от 0 (0) до 19 (199).
    $tbl - массив списков чисел в диапазоне 0..255, имеющих одинаковую сумму цифр.
    Ответ написан
    1 комментарий
  • Как получить название ролика Youtube по ссылке на ролик?

    fomenkogregory
    @fomenkogregory
    Юниор софтварный инженер
    Комментировать
  • Как перевести строку Base64 в картинку в JavaScript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не надо ничего раскодировать. Достаточно правильно сформировать атрибут src у тэга img.
    Ответ написан
    Комментировать
  • Какой смысл в Tor, если исходные данные подключения передаются Роскомнадзору?

    Jump
    @Jump
    Системный администратор со стажем.
    и прочитала что лицензии и поставщик самого интернет в России является Роскомнадзор.
    Вы какую-то чушь прочитали, или неверно поняли.
    Роскомнадзор это государственная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций.
    Исключительно надзорный орган, который следит за правопорядком. Интернет он не поставляет.

    Интернет вообще поставлять невозможно, ибо это глобальная всемирная сеть. Можно предоставлять доступ к интернету - этим занимаются провайдеры.

    тут мне в голове возникла такая идея ........... засветив MAC адрес своего ПК в сети
    Судя по сказанному вы просто не разбираетесь в работе сети. Очень рекомендую прочитать хотя бы основы работы сетей в целом и интернета в частности, прежде чем генерировать такие идеи.
    По крайней мере будете знать на каком уровне OSI идет работа с MAC адресом, и в каких пределах он распространяется.

    Ведь тогда всю инфу, где такой пользователь подключал свой ПК в сети, можно просто запросить у регионального контролирующего Интернет органа (Роскомнадзор)?! Верно?!
    Конечно можно запросить, только не у Роскомнадзора, а у провайдера. Роскомнадзор то тут каким боком? Это всего лишь контролирующий орган.

    Какой смысл в Tor
    TOR это система альтернативной маршрутизации развернутая поверх существующей сети. Позволяет менять маршрут трафика сложным образом, чем затрудняет идентификацию отправителя и получателя.
    При должном уровне понимания работы сети TOR можно использовать для того чтобы повысить анонимность.
    Просто удобный инструмент в умелых руках.
    Ответ написан
    Комментировать
  • Как сделать форму круга анимации?

    vachunya
    @vachunya
    Бог верстки, JS maniac, React bomberman
    Правильно будет контейнеру задать border-radius: 50%, тогда если контейнер квадратный то он станет круглы, форму круга у неквадратного контейнера не задашь никак.
    И еще твой код не работает и зависает, где ты взял его ? может лучше избежать подобного на сайте? Думаю эта типа анимация весит дофига или код ужасен...
    Ответ написан
    Комментировать
  • Как правильно работать с компонентами в Laravel 8?

    С точки зрения vue особо ничего не изменилось. Разве что он теперь не вшит по умолчанию.

    Если говорить про новое - возможно вы имели ввиду функционал livewire. Если им овладеть, то и vue может не понадобится
    Ответ написан
    8 комментариев
  • Можно ли сделать функцию, которая вернёт первую выполненную команду?

    @rPman
    В пределах сессии (веб-приложения или одной страницы, если не используются фреймы, хотя для хромиум это вопрос исследования) javascript выполняется в пределах одного процесса, это значит не получится запустить две функции в разных потоках чтобы они выполнялись одновременно... только последовательно.

    Попробуйте web-workers, они по уму могут работать в отдельном процессе, т.е. запускаете два воркера в каждому своя функция и ждете кто первый вернет результат.... Но учтите, даже в случае многопоточного исполнения никаких гарантий что повторный вызов даст тот же результат по скорости.
    Ответ написан
    Комментировать
  • Как правильно прописать несколько событий onclick?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала, лучше использовать addEventListener().

    Ну а так, смотрите, здесь:
    id1.onclick = Place('Вода');
    вы присваиваете в onclick результат функции Place().
    Так как функция ничего не возвращает (а только производит действия), то получается так:
    Place('Вода');
    id1.onclick = undefined;

    Чтобы функция стала обработчиком, нужно присвоить её саму, а не результат её вызова:
    id1.onclick = Place;
    Но так, конечно, тоже работать не будет. Теперь нужно прочувствовать этот момент, разобраться до полного понимания, чтобы двигаться дальше.
    Ответ написан
    Комментировать
  • Что означает конструкция var Name = (function(){})()?

    Seasle
    @Seasle Куратор тега JavaScript
    Ответ написан
    Комментировать
  • Как держать больше 65535 одновременных TCP соединений?

    xenon
    @xenon
    Too drunk to fsck
    Вы говорите об ограничении в 64k портов. Оно проявляется, например, в том, что вы не сможете на сервере запустить (на одном IP) больше 64k сетевых сервисов. (ssh слушает порт 22, apache слушает 80, mysql слушает 3306) итд. Каждый слушающий сервис идентифицируется по сокету ( IP + порт), IP у вас один, портов 64k, значит, 64k слушающих сокетов.

    А вот для установленных TCP соединений:

    socket
    An address which specifically includes a port identifier, that
    is, the concatenation of an Internet Address with a TCP port.

    connection
    A logical communication path identified by a pair of sockets.

    https://tools.ietf.org/html/rfc793

    То есть, соединение идентифицируется по IP сервера, порт сервера, IP клиента, порт клиента.

    Да и вы сами на любом более-менее активном веб-сервере видите через lsof множество соединений, и они все установлены с одним вашим сокетом (IP:80 или IP:443), но у них разный второй сокет. Если пользователь, например, качает какой-то файл в два потока, будет один коннект: server:80 - client:4444 и еще один коннект: server:80 - client:4445. Это разные TCP соединения.
    Ответ написан
    Комментировать
  • Как держать больше 65535 одновременных TCP соединений?

    В случае входящих соединений, очевидного лимита в 65535 соединений нет, скорей всего вы упретесь в лимит на файловые дискрипторы (сокеты), для каждого соединения нужен сокет. При этом лимиты могут быть на уровне пользовательских лимитов (и надо учесть для сервисов запускаемых через systemd действуют отдельные лимиты, а не те, которые указываются в limits.conf). Обычно по умолчаню лимиты дискрипторов в районе 1024-4096, существенно ниже 65535. Для очень большого количества сокетов необходимо будет так же менять sysctl на максимальное число открытых файлов, а возможно и пересобирать ядро, чтобы обойти заложенные верхние ограничения.

    В случае исходящих соединений, вы кроме сокетов упретесь в нехватку эфемерных портов, для каждого исходящего соединения требуется отдельный эфемерный порт. По умолчанию, их в районе 16k и можно расширить до 63k через соответствующие sysctl. Выше этого значения разрешить нехватку портов можно путем добавления дополнительных IP + в зависимости от системы, может потребоваться установка флагов SO_REUSEADDR/SO_REUSEPORT/SO_PORT_SCALABILITY). Как они действуют, и какие комбинации надо использовать зависит не только от системы,но и от версии ядра, попытка разобрать есть здесь:
    https://stackoverflow.com/questions/14388706/socke...
    Но в случае, если исходящий трафик идет через NAT (в случае виртуализации это почти всегда так), необходимо решать аналогичную проблему на уровне NAT.

    Для очень большого количества соединений вы будете упираться и в другие лимиты - sysbuf'ы, память и другие.
    Ответ написан
    Комментировать
  • Как держать больше 65535 одновременных TCP соединений?

    msHack
    @msHack
    На количество коннектов ограничений нет Это Количество портов 1-65535 ограничения могут быть в роутере,у провайдера,и в операционной системе к примеру процессор и оперативная память роутера не всегда спровляются и с 5000 соединений
    Ответ написан
    Комментировать
  • Как держать больше 65535 одновременных TCP соединений?

    @galaxy
    Поднимаю ещё несколько VPS'ок в качестве «рабочих»

    Несколько - это сколько?
    Есть такой sysctl параметер, как net.ipv4.ip_local_port_range - диапазон портов для клиентских соединений (из этого пула присваиваются порты при открытии нового соединение, в котором машина выступает как клиент). По умолчанию он выглядит как-то так: 32768 60999 (т.е. чуть больше 28к доступных портов). Т.е. два рабочих без настройки 150к коннектов никак не сделают (даже с настройкой, т.к. лимит исходящих соединений к одному IP - 65535).

    Еще есть несколько параметров, которые влияют на очередь обработки исходящих и входящих соединений. Почитать про них и их настройку можно тут (англ) и тут (рус).
    Ну и в статьях, на которые вы сами даете ссылки, есть рекомендации по настройке некоторых параметров (например, ограничения числа файловых дескрипторов).
    Ответ написан
    2 комментария
  • Как удалить все элементы методом remove()?

    Stalker_RED
    @Stalker_RED
    document.queryeSelectorAll('.main-menu__item')
      .forEach(elem => elem.remove());

    В консоли можно вообще так:
    $$('.main-menu__item')
      .forEach(elem => elem.remove());


    А вообще да, массив меняется, потому что
    HTMLCollection, хранящая элементы DOM, является динамической. При изменении документа она моментально отражает все произведённые изменения.


    Можете вместо этого перебирать массив с конца
    for (let i=li.length;i>=0;i--) { ... }
    или вообще, удалять первый элемент пока массив не опустеет
    while(arr.length) arr[0].remove()
    Ответ написан
    Комментировать
  • Почему через VPN некоторые сайты возвращают зловредный (?) скрипт?

    paran0id
    @paran0id
    Умный, но ленивый
    Есть такое дело - диапазоны ip-адресов хостингов, того же DO, находятся в черных списках некоторых сайтов. Защита от ботов, парсеров и нехороших людей. Подмены нет - вы попадаете на тот сервер, на который хотели попасть, просто вместо контента он отдаёт вам заглушку. В некоторых случаях предлагают разгадать капчу.
    Ответ написан
    4 комментария
  • Каковы перспективы Deep Reinforcement learning?

    Zoominger
    @Zoominger
    System Integrator
    Вам - нет.
    Ответ написан
    Комментировать
  • Парсинг первого видео youtube при поиске PYTHON. Как сделать?

    Megum1n
    @Megum1n
    Воспользуйся API, не изобретай велосипед.
    https://developers.google.com/youtube/v3

    Описание метода search:
    https://developers.google.com/youtube/v3/docs/sear...
    Нужно выполнить запрос, который сразу вернёт тебе list с результатами.
    Ответ написан
    Комментировать
  • Фильтрация массива объектом?

    Google MDN Array filter
    Ответ написан
    Комментировать
  • Возможно ли сгенерировать случайную строку в таблице mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например, так:
    ALTER TABLE `table`
      ADD COLUMN `product_code` VARCHAR(36);
    
    UPDATE `table` SET `product_code` = UUID();
    Ответ написан
    4 комментария