• Как развести входной лан кабель на две розетки RJ45?

    @rPman
    Если дать ответ именно на поставленный вопрос, нужен механический переключатель в месте развветвления, чтобы переключать подключение вручную.

    Подключать две линии к одной параллельно может быть опасно для свитча провайдера (мало ли забудешь и оставишь включенными два устройства одновременно) будут лишние наводки (вполне возможно до неработоспособности сети)

    Нужен восьмиполосный (24 контакта) двухпозиционный переключатель (на картинке 6-полос 3 позиции, но это не важно принцип тот же, их миллион вариаций, и внешнего вида), чтобы в один момент была подключена только одна розетка, и экономить не надо, т.е. чтобы не было одновременно подключенных линий к обоим.
    bnftvc4uja7m5qlp3agpemryhy4.jpeg

    p.s. не майся дурью, купи самый дешевый роутер (так как у тебя линия от провайдера, то нужен именно роутер а не свитч)
    Ответ написан
    Комментировать
  • Примерно в одно и тоже время пропадает частично интернет?

    @alfill
    Роутеры не перезагружаются раз в сутки (иначе у них флеш-память сдохнет) - у них есть время аренды ip клиентов в настройках DHCP-сервера, обычно небольшое, но желательно увеличить на неделю или больше чтобы часто не перестраивать маршруты.

    Видимо, комп не может обновить маршруты с роутера, может в сетевой отключен Link Layer Topology Discovery (lltd) протокол (в Wi-Fi учтены разрывы, оповещения ч/з Beacon Interval, поэтому такого нет), если сброс DNS ipconfig /flushdns или netsh winsock reset не помогает, то

    По кабелю лучше указать статичный ip: в DHCP-настройках роутера для каждой сетевой указать постоянный внутренний IP (чтобы Lan не пропадал), в настройках компа - соответственно указанный IP/маску/шлюз роутера.

    Примерно похожее происходит: интернет замирает на 2~5мин пару раз в день на получение внешнего IP потому что автоконфигурация по DHCP у [конкретно моего] провайдера обновляется ч/з 12ч (43200сек - lease time), т.к. его доступная подсеть имеет всего ~7тыс. IPv4 адресов, вот он проксирует и объединяет как может. Раньше сеть раз в 2-3..6 мес наглухо пропадает от 2ч до полдня, пока маршруты не настроятся и сам не разобрался.
    например по логам видно:
    Apr  7 05:50:22 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  7 11:50:22 udhcpc[1184]: Sending renew...
    Apr  7 11:50:24 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  7 13:59:07 udhcpd[1066]: Found static lease: 2301a8c0
    Apr  7 13:59:07 udhcpd[1066]: Sending ACK to 192.168.1.35
    Apr  7 17:50:24 udhcpc[1184]: Sending renew...
    Apr  7 17:50:26 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  7 17:51:37 pppd[4433]: LCP terminated by peer
    Apr  7 17:51:37 pppd[4433]: Connect time 1440.0 minutes.
    Apr  7 17:51:37 pppd[4433]: Sent 37511333 bytes, received 75485940 bytes.
    Apr  7 17:51:37 pppd: Disable forwarding for ppp0 interface
    Apr  7 17:51:37 pppd: Restore netfilter rules from pppd
    Apr  7 17:51:38 resolv: Generate resolv DNS1: 45.90.28.213 DNS2: 45.90.30.213
    Apr  7 17:51:38 pppd: Restore default gateway
    Apr  7 17:51:39 pppd: Flush route cache
    Apr  7 17:51:39 pppd: Restart need service and rebuild shaper and iptables rules
    Apr  7 17:51:39 services: Restart needed services and scripts. Mode pppd
    Apr  7 17:51:40 pppd[4433]: Connection terminated.
    Apr  7 17:51:40 pppd[4433]: Sent PADT
    Apr  7 17:51:40 pppd[4433]: Modem hangup
    Apr  7 17:51:41 iptables: Clear iptables rules fo ipv6 and set default actions.
    Apr  7 17:51:41 iptables: Starting IPTABLES
    Apr  7 17:51:42 iptables: Set default filters
    Apr  7 17:51:42 iptables: Service limit set
    Apr  7 17:51:42 iptables: Dnsproxy allow to connect
    Apr  7 17:51:42 iptables: Remote managment web limit
    Apr  7 17:51:42 iptables: icmp drop ping from wan eth2.2
    Apr  7 17:51:42 iptables: Set forward rules
    Apr  7 17:51:42 iptables: Add rules for web content filters
    Apr  7 17:51:43 iptables: Add QoS rules
    Apr  7 17:51:43 QoS: TOS add simple_qos netfilter rules
    Apr  7 17:51:44 iptables: Add NAT rules
    Apr  7 17:51:44 iptables: Call to add VPN netfilter rules.
    Apr  7 17:51:44 dnsserver: Generate /etc/hosts file.
    Apr  7 17:51:44 dnsserver: Send HUP to dnsmasq.
    Apr  7 17:51:44 dnsmasq[587]: read /etc/hosts - 6 addresses
    Apr  7 17:51:44 dnsmasq[587]: using nameserver 45.90.28.213#53
    Apr  7 17:51:44 dnsmasq[587]: using nameserver 45.90.30.213#53
    Apr  7 17:51:45 pppd[4433]: PPP session is 38429
    Apr  7 17:51:45 pppd[4433]: Connected to a4:6c:2a:a5:d8:10 via interface eth2.2
    Apr  7 17:51:45 pppd[4433]: Using interface ppp0
    Apr  7 17:51:45 pppd[4433]: Connect: ppp0 <--> eth2.2
    Apr  7 17:51:45 pppd[4433]: CHAP authentication succeeded
    Apr  7 17:51:45 pppd[4433]: CHAP authentication succeeded
    Apr  7 17:51:45 pppd[4433]: peer from calling number A4:6C:2A:A5:D8:10 authorized
    Apr  7 17:51:45 pppd[4433]: local  IP address 176.118.*.*
    Apr  7 17:51:45 pppd[4433]: remote IP address 172.30.*.*
    Apr  7 17:51:45 dyndns: Stopping DynDns
    Apr  7 17:51:45 dyndns: Starting DynDNS
    Apr  7 17:51:46 ntp: Stopping NTPD
    Apr  7 17:51:46 ntp: Starting NTPD
    Apr  7 17:51:47 vpn-server: Stop l2tp vpn server
    Apr  7 17:51:48 pppd: Down is OK
    Apr  7 17:51:48 pppd: No dgw stored.
    Apr  7 17:51:48 pppd: Replace default route to ppp0
    Apr  7 17:51:48 resolv: Generate resolv DNS1: 45.90.28.213 DNS2: 45.90.30.213
    Apr  7 17:51:48 pppd: Flush route cache
    Apr  7 17:51:48 pppd: Restart dns server, dyndns, ntp sync and rebuild shaper and iptables rules
    Apr  7 17:51:49 services: Restart needed services and scripts. Mode pppd
    Apr  7 17:51:49 QoS: Stopping SHAPER
    Apr  7 17:51:50 QoS: Set default rules.
    Apr  7 17:51:50 QoS: TOS Load module.
    Apr  7 17:51:50 QoS: TOS Generate /etc/qos_firewall
    Apr  7 17:51:51 Prio: port based QoS Load netsched  modules.
    Apr  7 17:51:54 iptables: Clear iptables rules fo ipv6 and set default actions.
    Apr  7 17:51:54 iptables: Starting IPTABLES
    Apr  7 17:51:54 iptables: Set default filters
    Apr  7 17:51:55 iptables: Service limit set
    Apr  7 17:51:55 iptables: Dnsproxy allow to connect
    Apr  7 17:51:55 iptables: Remote managment web limit
    Apr  7 17:51:55 iptables: icmp drop ping from wan eth2.2
    Apr  7 17:51:55 iptables: Set forward rules
    Apr  7 17:51:55 iptables: Add rules for web content filters
    Apr  7 17:51:55 iptables: Add QoS rules
    Apr  7 17:51:55 QoS: TOS add simple_qos netfilter rules
    Apr  7 17:51:56 iptables: Add NAT rules
    Apr  7 17:51:56 iptables: Call to add VPN netfilter rules.
    Apr  7 17:51:57 dnsserver: Generate /etc/hosts file.
    Apr  7 17:51:57 dnsserver: Send HUP to dnsmasq.
    Apr  7 17:51:57 dnsmasq[587]: read /etc/hosts - 6 addresses
    Apr  7 17:51:57 dnsmasq[587]: using nameserver 45.90.28.213#53
    Apr  7 17:51:57 dnsmasq[587]: using nameserver 45.90.30.213#53
    Apr  7 17:51:58 dyndns: Stopping DynDns
    Apr  7 17:51:58 dyndns: Starting DynDNS
    Apr  7 17:51:58 ntp: Starting NTPD
    Apr  7 17:52:00 vpn-server: Stop l2tp vpn server
    Apr  7 17:52:00 pppd: Enable forwarding for ppp0 interface
    Apr  7 17:52:00 pppd: All is start OK
    Apr  7 17:52:00 pppd: All is start OK
    Apr  7 20:23:04 udhcpd[1066]: Found static lease: 1c01a8c0
    Apr  7 20:23:04 udhcpd[1066]: Sending ACK to 192.168.1.28
    Apr  7 23:50:26 udhcpc[1184]: Sending renew...
    Apr  7 23:50:28 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  8 05:50:29 udhcpc[1184]: Sending renew...
    Apr  8 05:50:31 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  8 11:50:32 udhcpc[1184]: Sending renew...
    Apr  8 11:50:34 udhcpc[1184]: Lease of 10.240.*.* obtained, lease time 43200
    Apr  8 14:13:41 udhcpd[1066]: Found static lease: 2301a8c0
    Apr  8 14:13:41 udhcpd[1066]: Sending ACK to 192.168.1.35

    Еще вариант, если соединение позволяет - прописать на роутере определение DNS-имен не у провайдера, т.к. иногда глючит, а через него напрямую к NextDNS, AdguardDNS или яндекса 77.88.8.7 (немного увеличит время +50ms резолвинга и сделает недоступные внутренние подсети, если были, но зато вырежет рекламу).
    // Совсем способ - если модель роутера поддерживается и памяти хватит, то обновить прошивку на что-ниб более продвинутое типа Wive-RTNL или OpenWRT, DDwrt если старая прошивка глючит (мой роутер взламывали по сети, пока он был D-Link); настроить Encrypted DNS over-HTTPS/TLS/Quic DNSSEC для приватности, накатить пакетов Transmission BT, и ни разрывы, цензура, реклама не помеха.
    Ответ написан
    Комментировать
  • Как найти подстроку но вместо замены использовать ее и дополнить?

    Stalker_RED
    @Stalker_RED
    preg_replace('/(;|,)/g', '$1<br>', 'foooo' );
    Ответ написан
    Комментировать
  • Как сделать круговой слайдер фото?

    RAX7
    @RAX7
    Ответ написан
    Комментировать
  • Как сделать маску ввода банковской карты с скрытыми символами?

    f3d0t
    @f3d0t
    Добрый. Доработал решение irishmann для отображения именно звездочек
    Ответ написан
    Комментировать
  • Как перевести БД access в SQL?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Комментировать
  • Почему сайт не работает в конкретном браузере у конкретного пользователя?

    1. Убедиться, что сайт на самом деле открывается в сторонних службах - проще всего дать ссылку на google page speed или tools.pingdom - они помимо прочего делают скриншот сайта. И сказать, мол google и весь мир видит ваш сайт. Всё норм. Это действует достаточно отрезвляюще.

    2. Сообщить ему, чтобы протестировал сайт в своем браузере после полной очистки кэша и в режиме инкогнито, я когда-то делал ролик именно для таких случаев https://youtu.be/Kuh4S8zNIB8 отправляю его клиентам, чтобы правильно сайт тестировали.

    3. Если клиент тугой, попросить его поставить anydesk - чтобы зайти к нему удаленно и убедиться, что реально из его браузера даже после очистки кэша и в режиме инкогнито сайт не виден. Поотключать все расширения вообще, они бывает работают и в инкогнито. Просто вырубить напрочь.

    4. Попросить его проверить из такого же браузера, но на другом компьютере. Мало ли какой-то особо вредный антивирус или файерволл стоит как примочка именно к яндекс браузеру и мешает просмотру.

    5. Вернуть настройки браузера на дефолтные, бывает, галочку не там поставят, и часть сайтов уже не открывается.
    Ответ написан
    2 комментария
  • Как сделать вывод товаров сеткой?

    Sanes
    @Sanes
    Откройте для себя шаблонизаторы, чтобы такую дичь больше не городить.
    Ответ написан
    1 комментарий
  • Как ограничить количество отправленных СМС?

    Sanes
    @Sanes
    Записывать в базу сразу, как неверифицированный пользователь.
    Ответ написан
    Комментировать
  • Как ограничить количество отправленных СМС?

    Stalker_RED
    @Stalker_RED
    Таймер не нужен.
    После отправки записывайте в БД номер получателя и время.
    Перед отправкой проверяйте сколько попыток было за последние N минут.
    SELECT count(*) FROM sms_history WHERE send_date >= NOW() - INTERVAL 40 MINUTE
                                                             -- 40 минут, например


    Сессия обнуляется (сбрасывается SSID) по желанию пользователя, хранить в ней важные для вас (для сервера) данные - так себе идея.
    Ответ написан
    Комментировать
  • Как исправить код чужого репозитория?

    ayazer
    @ayazer
    Sr. Software Engineer
    создаете свою форку -> создаете в своей форке новую ветку -> исправляете баг в новой ветке -> создаете pull request с ветки своей форки в основную ветку оригинального репозитория. И обычно в более-менее популярных репозиториях есть список требований/рекомендаций которые надо выполнять если хотите чтоб ваш код вмерджили
    Ответ написан
    7 комментариев
  • Как в Ubuntu 20.04 установить PHP со всеми нужными для Composer/Laravel расширениями одной-двумя командами?

    DevMan
    @DevMan
    воспользоваться одним из 100500 доступных в инете манов/туториалов.
    на их основе написать простенький скрипт, который будет вызываться одной командой и запускать 100500 других.

    это, конечно же, если не хочется ждать волшебной пилюли, а сделать самому и хоть немного понять "а что происходит".
    Ответ написан
    2 комментария
  • Как распарсить строку?

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    Ответ написан
    Комментировать
  • Как убрать царапины с корпуса MacBook?

    Jump
    @Jump
    Системный администратор со стажем.
    Зачистить шкуркой, потом потом шпатлевка со стекловолокном, сверху финишная шпатлевка, грунт, три слоя краски, и лак.
    Ответ написан
    2 комментария
  • Что изучить в первую очередь для веб сайта?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Завтра мне нужно будет "следить" За сервером. Что мне понадобится изучить и какие учебники можете посоветовать?

    605d7a21c60c6227129062.jpeg

    Если от этого "поезда" не убежать, то советую перед каждым действием - 5 раз гуглить, 10 раз перечитать информацию, если есть возможность не править код в наглую в "мастере" и на боевом сервере(накатить на dev и оттестировать"), как можно чаще задавать себе вопрос "а не делаю ли я что-то, что может привести к факапу и увольнению за нецелесообразность".
    Ответ написан
    4 комментария
  • Можно ли в Micro ATX-корпус поставить mini atx материнку?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    В инструкции или описании к корпусу будет указано какие форматы материнок в него подходят.
    Обычно в больший корпус можно ставить материнки меньшего размера т.к. по крепёжным отверстиям они совпадают.
    Comparison_ATX_%C2%B5ATX_DTX_ITX_mini-DTX.svg
    Ответ написан
    Комментировать
  • Как работать с библиотеками в Python?

    @mkone112
    Начинающий питонист.
    Я начинаю работать над новым проэктом.

    Сначала выучи питон. Вопрос уровня кодера с 2мя неделями опыта программирования. И лучше проверяй вопрос на орфографию.
    Ответ написан
    1 комментарий
  • SQL инъекция в UPDATE возможна ли?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Инъекция может быть через любой запрос.
    И защищать тоже надо любые запросы.
    Никогда не надо торговаться, "а можно я не буду защищать именно этот запрос? Ну мааааам!"
    Надо просто всегда следовать простым правилам - любая переменная попадает в запрос только через плейсхолдер

    Важно понимать, что в рассуждениях про инъекции люди постоянно путают два понятия - самой уязвимости, и конкретных способов ей воспользоваться.

    Уязвимость — это сама возможность с помощью переданных в запрос данных изменить его код.
    Даже если ты не знаешь ни одного способа ей воспользоваться, уязвимость от этого никуда не девается.
    Даже если та возможность, про которую ты знаешь, в данном случае не прокатит - остаются ещё тысячи других.
    Если есть уязвимость, то способы ей воспользоваться всегда найдутся.

    То есть сама уязвимость никак не зависит ни от каких второстепенных факторов - типа запроса, передаваемых данных, способов их валидации, твоих знаний SQL. Это сам факт. Можно подставить свой код в запрос? Значит он уязвим. А как конкретно можно нагадить - это отдельная тема.

    Кроме того, любая уязвимость - это всегда ошибки. Если в $id будет пусто, то запрос вызовет ошибку. Если в $id будет слово select то запрос вызовет ошибку. Если будет слово "привет", то запрос вызовет ошибку. Оно тебе надо?

    При этом разных вариантов возможных ошибок и способов воспользоваться уязвимостью - тысячи, им посвящены целые учебники и статьи. Но для того чтобы защищаться, не надо знать ни одного. Потому что защищаться надо не от отдельных способов эксплуатации, а закрывать саму уязвимость. И сделать это очень просто:
    1. Любые данные должны добавляться в запрос только через плейсхолдеры
    2. Любые другие элементы запроса должны выбираться из белого списка - заранее прописанных в нашем коде значений.


    Если вопрос "а можно я не буду защищаться?" вызван ленью, то это тоже решаемо. В принципе, лень - это очень важное качество для программиста. Главное - направить её в нужное русло.

    Если каждый раз писать по три строчки долго
    $sql = "INSERT INTO users SET email = ?, password = ?"; // заменяем на знаки вопроса
    $stmt = $db->prepare($sql); // подготавливаем запрос, получаем stmt
    $stmt->bind_param("ss", $email, $hash); // два знака вопроса - две переменных - две буквы s
    $stmt->execute(); // выполняем запрос

    То надо воспользоваться такой вещью, как программирование. И написать функцию, которая возьмет на себя всю рутинную работу.
    function prepared_query($mysqli, $sql, $params, $types = "")
    {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    и в итоге предыдущие 4 строчки превратятся в одну:
    prepared_query($db, "INSERT INTO users SET email = ?, password = ?", [$email, $hash]);

    или твой запрос:
    prepared_query($db, "UPDATE table SET test WHERE id = ?", [$id]);

    - просто, быстро, удобно и безопасно
    Ответ написан
    26 комментариев