• Правильно ли я разделил сеть на подсети?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Маска подсети занимает 16 бит, но в третьем октете есть бит, который не попадает под неё. Что мне делать с этим битом?

    Задание - конечно, бредовое. 201.111.32.0/16 - это адрес хоста, а не сети, потому что адрес имеет единичные биты в области нулевых битов маски:
    Host 11001001 01101111 00100000 00000000
    Mask 11111111 11111111 00000000 00000000

    Но к тому, что преподаватели сами безграмотны, мы уже привычные... посему попробуем интерпретировать задание так: выделение производить в подсети, в которой находится узел 201.111.32.0/16 (это подсеть 201.111.0.0/16), выделяемые подсети должны располагаться не ранее указанного адреса узла, и допускать количество хостов не менее заданного.

    Начать надо с определения минимальной маски конечной подсети.
    Хостов Маска
     170     /24
     590     /22
    1500     /21
     800     /22
     254     /24

    Далее, чтобы заполнять диапазон оптимальным образом, надо выделять подсети так, чтобы они занимали наиболее широкую возможную подсеть полностью либо по максимуму. Т.е. берём заданную границу host 201.111.32.0 mask /16 и начинаем "откусывать" требуемые подсети. С целью минимизации расхода адресного пространства мы на каждом шагу распределяем самую "широкую" из подсетей, которая укладывается в текущее место.

    Сначала определяем максимальную маску для данного узла. Это будет маска /19:
    Host 11001001 01101111 00100000 00000000
    Mask 11111111 11111111 11100000 00000000

    Значит, с данного адреса мы можем сразу распределить подсеть 3. Она будет иметь адрес 201.111.32.0/21 и занимать диапазон адресов 201.111.32.0 - 201.111.39.255, последний адрес является бродкастом.

    Теперь мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.40.0. Максимальная маска для этого узла - /21. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 2. Она будет иметь адрес 201.111.40.0/22, займёт диапазон адресов 201.111.40.0-201.111.43.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.44.0. Максимальная маска для этого узла - /22. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 4. Она будет иметь адрес 201.111.44.0/22, займёт диапазон адресов 201.111.44.0-201.111.47.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.48.0. Максимальная маска для этого узла - /20. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это подсеть 1. Она будет иметь адрес 201.111.48.0/24, займёт диапазон адресов 201.111.48.0-201.111.48.255.

    Далее мы распределяем оставшиеся подсети с первого свободного после уже выделенной подсети адреса 201.111.49.0. Максимальная маска для этого узла - /24. Соответственно распределяем здесь самую крупную из оставшихся подсетей. Это единственная оставшаяся подсеть 5. Она будет иметь адрес 201.111.49.0/24, займёт диапазон адресов 201.111.49.0-201.111.49.255.
    Ответ написан
    2 комментария
  • Что лучше использовать proxy+VPN или двойной VPN в данном случае?

    @Drno
    Подключаете свой ВПН с переадресацией ВСЕГО трафика туда, включая DNS запросы, после подключаете рабочий

    людям которые уехали из страны я делал вот так, пока жалоб не было
    Ответ написан
    Комментировать
  • Как игровые движки понимают инородные языки?

    Vindicar
    @Vindicar
    RTFM!
    1. Встраивают интерпретатор нужного языка, при необходимости урезают стандартную библиотеку (чтобы не давать коду плагинов лишних возможностей) и подсовывают туда средства общения с хост-программой.
    2. Если нет нужды изолировать плагин от остальной программы, то полагаю что да, накладные расходы на поддержку плагинов уменьшатся в случае, когда плагин написан на том же языке, что и программа. В противном случае организация "песочницы" может занять столько же усилий, сколько встраивание интерпретатора.
    3. Лучше, если язык плагина является или интерпретируемым (как Lua или JS), или компилируется в байткод (как Python/Java/C#). Также желательно, чтобы язык плагина имел средства интроспекции.
    Ответ написан
    Комментировать
  • Можно смотреть фильм на ноутбуке без ОС?

    SagePtr
    @SagePtr
    Еда - это святое
    Да, LiveUSB любого линукса или WinPE
    Ответ написан
    Комментировать
  • IP для VLAN - почему два?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вот какая связь между VLAN и адресом внутреннего интерфейса коммутатора? Никакой, от слова вообще. Данный адрес - именно адрес внутреннего интерфейса коммутатора. Запись просто утверждает, что внутренний интерфейс коммутатора доступен по указанному адресу в указанном VLAN. Т.е. если, находясь в данном VLAN, узел обратится по данному адресу - то он будет обращаться к коммутатору. Ну захотелось человеку, который настраивал сетку, присвоить коммутаторам адреса из разных подсетей, но в одном VLAN - имеет право. Неясно, правда, какой с того профит, но проблем с этого уж точно никаких. У меня в сети, например, для коммутаторов выделены аж три разные подсети в трёх разных management VLAN, различающихся по назначению, и некоторые из коммутаторов имеют адреса в двух, а магистральные даже во всех трёх, VLAN.

    Я понимаю, если бы что-то бы интерферировало - скажем, один и тот же адрес, или один адрес был бродкастом подсети второго адреса. Тогда бы был предмет для беспокойства.

    Если с такой настройки корячит - ну перенастрой.
    Ответ написан
    2 комментария
  • Почему программа загружается в разных областях памяти?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему программа каждый раз занимает различные области памяти?

    Потому что современные ОС делают это намеренно, чтобы затруднить эксплуатацию уязвимостей в ПО. Это называется ASLR: address space layout randomization. Обычно есть способ отключить ASLR глобально либо для отлаживаемых программ, чтобы добиться воспроизводимости результатов.
    Так, например, в linux это делается глобально с помощью файла /proc/sys/kernel/randomize_va_space либо командой setarch -R для одного конкретного процесса. Отладчик gdb по умолчанию отключает ASLR для отлаживаемых программ.
    Ответ написан
    3 комментария
  • Допускается ли в коде смешивать парадигмы программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    - ООП
    - Функциональное
    - Процедурное
    - Структурное

    Это во первых - устаревшие понятия. Все из 20-го века. Сегодня они почти не актуальны.

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

    В современном программировании практикуется конвенция которая принята в команде. Вот придете на проект и вам покажут как пишушт все. И будете так писать. Никто не будет упарываться по поводу трушности ООП или еще чего-то. А в техническом задании от бизнеса вообще ничего не будет на тему стиля кодирования. Там будут описаны просто требования по бизнес-кейсам.
    Ответ написан
    8 комментариев
  • Что находится по этому адресу в памяти?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему дефолтные значения выглядят так (первые два скришота)

    Потому что это адреса. 8 байт адреса, на втором скрине первый -- 0x12df11a80, второй -- 0x12df11a60
    Ответ написан
    2 комментария
  • Какие почтовые сервера и почтовые сервисы позволяют организовать почту со своим доменом на кирилице?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вам стоит прочитать по Punycode, в котором "живут" все кирилические (все национальные) имена доменов.
    После этого вы поймёте, что АБСОЛЮТНО ВСЕ почтовые сервера и сервисы работают с национальными именами доменов прозрачно, потому что они - в Punycode.

    Единственно что - при создании письма на национальный домен перекодировать в Punycode должен почтовый агент, то бишь программа для написания писем. А дальше уже по стандартной накатанной дорожке, обычный English домен...
    Ответ написан
    5 комментариев
  • Какой стэк использовать для быстрого доступа данных?

    batyrmastyr
    @batyrmastyr
    1) > чтобы хранить весь массив данных в виде json
    JSON уже давно можно хранить в самом MySQL, если вам нужно произвольное число параметров, но значения их скалярные. Для индексации - виртуальные колонки и индексы по ним.
    Если хочется найти искать «1» в массиве [1, 2,5], то вам в PostgreSQL.
    2) «Полнотекстовый поиск» — что вы от него хотите? Если вам нужно точное совпадение, только быстрее, то берите что угодно.
    Если вам нужен учёт словоформ, то он есть как минимум в Монге, Эластик, Постгрес, Сфинкс/Мантикора.
    Если вы хотите больше контроля (поиск с учётом особенностей > 1 языка, тюнинг морфологии, какое-то ранжирование), то выкидываем Монгу (нет тюнинга морфологии и ранжирования, а на каждый язык нужно вешать отдельный индекс).
    Если вы и ранжирование хотите тюнить (вплоть до простенького машинного обучения) и вообще максимальную скорость поиска, то вас спасёт только Мантикора/Сфинкс, всё остальные грустно глотают пыль.

    Но золотая середина - Постгрес. На него довольно легко перекатиться и он избавляет от необходимости разводить NoSQL зоопарк.
    P.S. И забудьте про монгу, Постгрес лучше неё почти по всем параметрам.
    Ответ написан
    Комментировать
  • C - как сделать замену подстроки в строке (руками)?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    А что делает startsof()?

    Даже если принять, что оно действительно ищет вхождение второй строки в первой - у вас там в каждой второй строчке ошибка.

    malloc(string_size + sub_size - to_size);

    Объясните мне, как вы получили вот это значение длины?

    А дальше копирование у вас неправильно. Чтобы заменить строку-вхождение вам надо в ответ скопировать начало str1 до вхождения, потом скопировать to, потом скопироваать конец строки str1, после вхождения. Это должны быть три параллельных цикла. У вас в одной ветке их 2 (один в функцию бесполезную спрятан), в другой - только 1.
    Ответ написан
    Комментировать
  • Как сделать чтобы только один из установленных браузеров ходил через vpn?

    Adler_lug
    @Adler_lug
    Сделайте прокси сервер доступный по ВПН и просто в браузере пропишите прокси. В FF это есть с коробки, для Chrome и клонов поддержка индивидуальных прокси расширениями ставится (их там полно разных).
    Ответ написан
    2 комментария
  • Объясните пожалуйста, как правильно использовать rebase ВМЕСТО merge?

    Lynn
    @Lynn
    nginx, js, css
    Совет про rebase вместо merge как раз для случая

    git rebase develop

    чтобы на origin потом никто не умер при мерже

    Т.е. вы его уже используете.

    Финальный merge вашей фичи в develop конечно никуда не денется.
    Ответ написан
    2 комментария
  • C# или C++ как первый язык?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    C# - это как если бы ты скупал золотые драгоценности, переплавлял их, и делал бы из них золотые слитки.
    C++ - это как если бы ты добывал руду в шахте, проходил бы сам разные стадии очистки, параллельно бы промывал речной песок, и в итоге получал бы всё те же золотые слитки.

    Что лучше новичку? Нельзя ответить однозначно. В первом случае ты по началу не только не будешь знать, сколько в твоём сплаве меди, но и вообще не будешь знать о ней, полагая, что золото есть золото. Конечно, со временем ты во всё вникнешь, но это будет потом. Для самозащиты тебе дадут пистолет с резиновыми пулями и слезоточивый газ.

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

    Искатель ли ты приключений, или ищешь лёгкой наживы - решать тебе. Оба варианта имеют свои плюсы и минусы.
    Ответ написан
    3 комментария
  • Устройству присваивается ip адрес из другой подсети. Как исправить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, в сети есть второй DHCP.
    Ответ написан
    2 комментария
  • Как подключить порты USB Windows 7 x64?

    @Drno
    Судя по всему в БИОС клава\мышь работают? Тогда проблема в драйверах
    Попробовать как советую безопасный режим(с поддержкой сети)
    Там должно заработать в режиме совместимости. уже оттуда поставить драйвера на мат плату
    Либо настроить любую удаленку, запуститься в обычном режиме, зайти через удаленку и поставить драйвера)
    Ответ написан
    Комментировать
  • Фабричный метод. Как создать рефлексивно по имени поля класс, наследуемый от абстрактного?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    В С++ рефлексии нет. Только ручками. Где-то придется писать список всех классов и по всем им пробегаться и сравнивать строку. Ну или map какой-то создать. В качестве ключа вставлять команду, в качестве значения - функцию создающую объект конкретного класса.

    Как вариант, можно как-то упростить себе работу с помощью шаблонной магии. Шаблон будет принимать список всех классов, сравнивать первый с заданной командой и или рекурсивно вызваться дальше или создавать объект текущего класса.

    Пример можно посмотреть вот тут. Там CreateEncoderInternal делает практически то, что вам надо. Только там не константное поле command проверяется, а проверяется, что заданный формат есть в статическом списке в текущем классе.

    И все-равно где-то в коде надо прописать список всех возможных классов, как тут.
    Ответ написан
    Комментировать
  • Как выйти на директорию назад?

    @pfg21
    ex-турист
    cd ..
    Ответ написан
    Комментировать
  • Зачем нужен отдельный синтаксис для препроцессора?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Зачем нужен отдельный синтаксис для препроцессора

    Затем, что препроцессор -- это отдельная программа с отдельным языком? Внутри препроцессируемого файла может быть что угодно, не обязательно код на С или С++. Так, например, linux препроцессирует скрипты линковщика перед тем как использовать их. И исходники написанные на ассемблере, хотя у ассемблера есть собственные макросы, директивы для включения файлов и условной компиляции.
    Ответ написан
    4 комментария
  • Почему возникает ошибка?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему возникает ошибка?

    Потому что это не С++ код. Designated initializers есть в C начиная с C99 и в C++ есть начиная с C++20, но в С++ версии полно дополнительных ограничений.
    Ответ написан
    Комментировать