• Безопасен ли общий IP для VPN?

    @res2001
    Developer, ex-admin
    С точки зрения безопасности использовать общий IP вполне безопасно. Утечки данных не зависят от того общий IP у тебя или свой собственный. Они зависят от того, что ты делаешь, чтоб не было утечек. Оператор ВПН то же может посодействовать (смотри ответ CityCat4 )
    потому что общим пользуются несколько человек и если кто-то накосячит, IP заблочат для всех.

    Есть такое. Но заблочат только на том ресурсе, на котором этот кто-то накосячил.
    Если выделенный IP стоит дополнительных денег, то скорее всего за те же деньги можно арендовать VDS и поднять там свой собственный VPN.
    Ответ написан
    Комментировать
  • Как отключать дисплей через n минут (bat настройка) в домене и без него?

    @res2001
    Developer, ex-admin
    Просто настройте скринсейвер нормально.
    Это можно сделать через реестр для не входящих в домен. После правки реестра начнет работать после перезагрузки. Ключи реестра не скажу, но, думаю, их можно нагуглить без проблем.
    В доменных - наверняка должно быть в GPO.
    Ответ написан
  • Как настроить несколько параллельных RDP-соединений через Windows VPS?

    @res2001
    Developer, ex-admin
    Какая версия винды стоит на VPS?
    Если Windows 10 (7, 8, 11) - то это ограничение десктопной версии винды - она однопользовательская, в том смысле, что одновременно работать может только один пользователь. Это лицензионное ограничение.
    Для многопользовательской работы предусмотрена Windows Server, количество одновременных соединений так же лицензируются отдельно. Вообще тема лицензирования Windows Server довольно не простая.
    На гитхабе есть RDP wrapper, который снимает это ограничение для RDP сессий на десктопной винде. Но вы должны понимать, что это нарушение лицензии. Если VPS в РФ, то сейчас на это можно не обращать внимание. Но думаю, что это не на долго.
    Ответ написан
    Комментировать
  • Перенести каждый файл в свою папку и переименовать папку в имя из имени файла?

    @res2001
    Developer, ex-admin
    Проходитесь по всем файлам в каталоге с помощью цикла for.
    Выделить подстроки в имени файла можно с помощью for /f, установив соответствующий разделитель.
    Создать каталог md
    Перенести файл: move
    За подробностями:
    for /?
    md /?
    move /?

    Наверняка понадобится отложенное расширение переменных:
    setlocal /?
    Ответ написан
    1 комментарий
  • Как организовать сеть (теория)?

    @res2001
    Developer, ex-admin
    0. Да
    1. Да
    2. Да. Только 192.168.111.0 - не подойдет для маски 22. Вам нужно подтянуть теорию по IP адресации.
    3. Тут нет классических/не классических вариантов. Погуглите "серые IP фдреса", узнаете, что подсеть 10.0.0.0/8 - вполне себе "классическая" серая подсеть. Обычно используют 10 подсеть там где очень много компов в сети - несколько тысяч.
    4. Обычно для "общего" влана используют VLAN0, он же влан по умолчанию. В коммутаторах, обычно, этот ВЛАН уже есть и в него входят все порты как не тегированные и, по моему, это изменить нельзя.
    5. Без разницы. Смотрите по факту. Например у вас по каким-то причинам появилась группа компов в своем ВЛАНе или своей подсети и ей нужен "свой" сервер, логично этот сервер поместить в эту же подсеть/влан.
    Имейте ввиду, что помещая сервера в дургие подсети, потребуется обеспечить маршрутизацию между подсетями. Часто это может быть связано с дополнительными пересылками трафика, которых можно избежать, поместив сервера в ту же подсеть с пользователями.
    Вообще тут часто играют внешние факторы, например дополнительные требования к безопасности для каких-то серверов и т.п.
    6. то же что 5.
    7. IP телефония как и камеры то же генерирует сетевой трафик, если его будет слишком много, он может мешать нормально работе сети. Тупо перегрузка сети, дополнительная нагрузка на коммутатор, большие лаги и т.п. Кстати - и наоборот то же актуально - если повышается нагрузка на сеть, то можете столкнуться с тем, что по телефону станет сложно разговаривать. И вообще в случае аварийной ситуации в сети, хорошо когда хотя бы телефоны работают. А то знаете - сбой сетевого адаптера в любом ПК, он начинает флудить пакетами в сеть и телефоны то же перестают работать - апокалипсис местного масштаба.
    8. Да.
    9. Сомневаюсь, что тут есть какие-то рекомендации. Я всегда помещал принтера в ту же подсеть и влан, в котором сидят его пользователи. Естественно, под принтера выделяется отдельный поддиапазон адресов, который не раздается по DHCP пользователям. Если у вас централизованный принт-сервер, то возможно будет удобнее выделить принтера в отдельную подсеть/влан. На мой взгляд, если нет дополнительных требований/хотелок, то нет смысла усложнять схему.
    Ответ написан
  • Как задать размерность массива при помощи константы?

    @res2001
    Developer, ex-admin
    Задай с помощью defineа.
    Размерность статического массива должна быть известна на этапе компиляции. А значение константы в общем случае может быть не извесно при компиляции. К сожалению в Си незавезли из плюсов constexpr.
    Ответ написан
    8 комментариев
  • Куда сохранять незаконченный код?

    @res2001
    Developer, ex-admin
    Откройте для себя интерактивное ребазирование: git rebase -i
    Эта команда производит интерактивное ребазирование, причем вы можете выбрать вручную какие из комитов ребазировать, какие нет, какие-то комиты можно слить в один и т.п.
    Т.е. вы можете комитить сколько угодно промежуточных комитов в свою ветку, когда фича будет готова делаете интерактивное ребазирование ветку саму на себя, сливаете все комиты в один (или делаете их несколько), делаете к этому комиту полноценный коментарий. Все.
    Для справки: git rebase --help
    Ответ написан
    Комментировать
  • Как настроить openvpn сервер с udp портом для клиентов с серыми ip?

    @res2001
    Developer, ex-admin
    OpenVPN лучше работает на UDP, у них есть статья почему это именно так, гуглите. Но это не значит, что вариант с TCP не работоспособен, просто там есть определенные "особенности".
    Арендуйте VDS с белым IP и на нем разместите VPN сервер.
    Не только для ВПН, но и вообще для любого сервиса, который должен быть доступен из интернет необходим белый IP.
    Можно, конечно, попробовать договорится с оператором о пробросе портов, но, по моему, это не реально.
    Ответ написан
  • Как проверить дисковое пространство в Windows 10?

    @res2001
    Developer, ex-admin
    Посмотрите SMART статус диска любым софтом, который это умеет показывать, если там какое-то критическое состояние, то, видимо, пора менять диск.
    Дальше можно "тестировать поверхность", но это уже не в RAIDе и, наверное, не на этом компе.
    Диски порой дохнут, как и все остальное, сделанное человеком. И чем больше у вас дисков (и чем они более объемны), тем чаще они будут дохнуть.
    Ответ написан
    4 комментария
  • Что нужно знать, чтобы написать web server на C++?

    @res2001
    Developer, ex-admin
    Полноценный веб сервер - это очень сложное ПО. Сам по себе протокол HTTP оброс кучей дополнений и улучшений, только посмотрите список RFC, его описывающих. В одиночку написать с нуля что-то подобное, например, apache - практически не посильное дело.
    Кроме HTTP, конечно, нужно хорошо знать и понимать сетевое программирование, параллельное программирование, английский язык, что-то еще.

    Но есть библиотеки, в которых веб сервер в каком-то виде с теми или иными ограничениями уже реализован. Можно использовать их. В этом случае задача сильно упрощается.
    Как пример: libonion, haywire, но это больше для Си. Для плюсов есть другие варианты.
    Ответ написан
    Комментировать
  • SQL два join в одной и той же таблице?

    @res2001
    Developer, ex-admin
    Я правильно понимаю, что это реально будет в 2 раза медленнее происходить?

    Естественно.
    Но по docid у вас индекс, так что должно быть достаточно быстро.
    Ответ написан
    Комментировать
  • Как сделать удобную удалёнку к родителям в сеть?

    @res2001
    Developer, ex-admin
    ВПН клиент на роутере, статические IP адреса на компах, разные IP подсети в "вашей" сети и в родительской. У себя покупаете белый статический IP у оператора и поднимаете ВПН сервер. Удаленный рабочий стол на компах.
    Ответ написан
    Комментировать
  • При выводе на экран одна строка копирует другую, хотя они должны быть разные. Как исправить?

    @res2001
    Developer, ex-admin
    Не копирует.
    У вас no - это объединение (union). В объединении все члены объединения занимают одну и ту же память, т.е. если вы посмотрите sizeof(no), то увидите 4 байта, т.е. память выделяется как для одного int, а у вас там 2 int. Т.е. то что вы написали в коде так оно и работает.
    Т.е. операции, например:
    f.a.people = 9;
    f.a.s = 2;

    перезаписывают одну и ту же область памяти. После этого f.a.people == 2, а не 9.
    Ответ написан
    Комментировать
  • Как исправить ошибку с построчным чтением из бинарного файла C++?

    @res2001
    Developer, ex-admin
    1. Хорошо бы код спрятать под тег code (есть кнопка в панели инструментов) и вернуть разметку, не возможно читать.
    2. Не видна последовательность вызовов input() и output().
    3. В input() файл открываете на запись, но ничего туда не пишете, в итоге файл пустой.
    4. В output вы не правильно читаете:

    Суть в том, что тип string хранит саму строку в динамической памяти, а не в самом объекте (в объекте только указатель на динамическую память). string у вас используется в AutoBase.
    Тем способом, которым вы пытаетесь читать из файла вы прочитаете какой-то указатель и скорее всего будет обращение к не выделенной памяти и программа упадет. Подозреваю, что запись вы бы реализовали так же и в файл записался бы указатель, а не строка.
    Вам надо читать и писать объект string по другому. Есть 2 варианта:
    • Сначала пишем/читаем размер строки, затем пишем/читаем саму строку заданного размера.
    • Пишем всю строку, в конце дописываем какой-то разделитель. В качестве разделителя можно использовать символ '\0', так же как в сырых Си строках или то что вам больше нравится, лишь бы разделитель не мог содержаться в самой строке. При чтении надо читать побайтно, до тех пор пока не встретится символ разделитель.

    Какой вариант реализовывать решать вам.
    Ответ написан
  • Как разукрасить текст консоли разными цветами?

    @res2001
    Developer, ex-admin
    Речь ведь про винду?
    В cmd есть команда color. Никогда ей не пользовался, так что не помню цвет чего она меняет, посмотрите в справке. Набор цветов у нее достаточно скудный.
    Так же консоль поддерживает Esc последовательности, где можно задавать цвета выводимых символов. Но тут, скорее всего придется использовать низкоуровневое Console API: https://docs.microsoft.com/en-us/windows/console/c...
    Возможно какие-то консольные библиотеки это поддерживают. Что-то типа ncurses.
    Еще можно заглянуть в исходники, например Far manager, посмотреть как они там работают с цветом в консоли.
    Ответ написан
    Комментировать
  • Чем вы бэкапите и почему?

    @res2001
    Developer, ex-admin
    Когда мне это еще было актуально в конторе исопльзовал Symantec BackupExec.
    Помимо прочего умеет бэкапить виртуалки, MS SQL и много чего еще, поддерживает ленточные носители. В целом продукт хорош, но не бесплатен и многие плюшки идут за отдельные деньги.
    Ответ написан
    Комментировать
  • Как лучше оптимизировать такие действия с массивами?

    @res2001
    Developer, ex-admin
    Читайте файлы сразу большими блоками (вплоть до всего файла сразу). Под большие блоки можете использовать std::vector<char> с предварительно установленным размером вектора (std::vector::reserve())
    Затем вручную делите прочтенный блок на строки, видимо, заменой \n на 0.
    Все указатели на найденные строки сразу складывайте в используемую в алгоритме структуру данных.
    Не используйте std::string, т.к. он реаллоцирует память на каждый чих, это приводит к повторному выделению того же самого объема памяти но порезанному на мелкие куски и дополнительному копированию строк. Используйте std::string_view (есть в С++17) или вообще сырые Сишные строки, как самый быстрый вариант.

    Вообще все массивы в плюсах (vector, array, "сырые" динамические и статические массивы) работают одинаково быстро, если рассматривать операцию обращения к элементу массива по индексу. Но в vectorе многие другие операции могут приводить к реаллокации памяти и копированию массива. В сырых динамических массивах вы не можете просто так изменить размер массива, это надо делать явно с помощью вызова realloc, а потому тут вы эту операцию явно контролируете, в векторах же (как и строках) это происходит не явно, поэтому часто разработчики не придают этому значения, тогда как обращения к менеджеру памяти достаточно дороги в плане производительности.
    Ответ написан
    Комментировать
  • Как распаковать архив с самой последней датой создания?

    @res2001
    Developer, ex-admin
    Вывести список файлов, соответствующих маске отсортированный по дате в обратном порядке:
    dir /a-d /o-d /b *.7z
    Эту команду запихнуть в for /f, обработать в цикле только первый файл и выйти из цикла.
    Ответ написан
    Комментировать
  • Какая область видимости "глобальных сущностей" CMake?

    @res2001
    Developer, ex-admin
    Вот тут пишут: https://cmake.org/cmake/help/v3.10/command/link_li...
    что это повлияет только на цели созданные в текущем или ниже CMakeLists.
    Подозреваю, что в link_libraries просто меняется переменная. А переменные в cmake ведут себя по умолчанию так как описано, т.е. изменения видны тут и ниже. Чтоб они были видны выше, нужны танцы с бубном, чего, видимо, нет в link_libraries

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