• Как вылечить диск?

    @res2001
    Developer, ex-admin
    Если на диске важные данные, то я бы сделал образ диска, а потом бы производил потенциально деструктивные операции.

    В первом случае можно ввести в ответ No, тогда он что-то попробует сделать.
    Можно попытаться восстановить раздел с загрузочного носителя, используя софт для восстановления разделов.
    Для начала стоит провести тест диска, т.к. суперблоки и таблицы разделов обычно просто так не сбоят. Вероятно диск начал сыпаться.
    Ответ написан
    3 комментария
  • Общие вопросы по работе Интернета и сетей?

    @res2001
    Developer, ex-admin
    1. Вещи это разные, но взаимосвязанные. Домен сайта - это просто запись в DNSе и веб сервер настроенный на это имя. Домен AD - это целый комплекс решений, в которые в т.ч. входит и DNS и может быть веб сервер.
    Но сайты обычно используются внешними по отношению к организации пользователями, а домен предприятия - внутренними. Поэтому лучше их разделять и вообще делать так, чтоб инфраструктура обслуживающая обе сущности не пересекалась друг с другом. Делать это полезно в т.ч. и с точки зрения безопасности сети. При этом имя внутреннего и внешнего домена вполне может быть одно и то же, но это не обязательно.
    2. Маска нужна для того, что бы tcp/ip мог понять отправляется ли пакет в другую сеть, не доступную на прямую, или же он уходит соседу по своей сети. Если пакет отправляется в другую сеть, то включается маршрутизация, обычно это заключается в том, что реально пакет уходит на шлюз по умолчанию, а там уже разруливается по нужным направлениям. Делается это так:
    if ((remoteIP & mask) != (selfIP & mask)) {
      пакет предназначен для другой сети, идем на маршрутизацию
    } else {
      пакет для своей сети - можно отправлять сразу
    }

    Где:
    remoteIP - IP назначения,
    selfIP - свой IP,
    mask - маска своей сети.
    Используется операция побитового И.
    Для совершения подобной проверки маска и IP адреса преобразуются в 4-ёх байтовое беззнаковое целое (просто 4 октета IP адреса "склеиваются" вместе в двоичном представлении и составляют это 4-ёх байтовое целое) и уже над этими числами производятся операции.
    Из подобного применения маски видно, что она не обязательно должна быть 255 или 0. Возможны любые значения, которые может принимать 4 байтовое беззнаковое целое, где старшие биты единицы, а младшие нули. Например допустимы значения: 0, 128, 192, 224, 240, 248, 252, 254, 255 (тут я указываю значения для одного октета в маске). Чтоб было понятнее переведите все эти числа в двоичную систему.
    3. Классовой адресации уже в реальности нет (это "уже" длится уже долго, я не успел застать классовую адресацию :)). Про нее еще пишут в книгах, но в жизни ее нет. Везде где вы встретите маску в настройках IP - классовой адресации нет.
    В принципе, все задачи по разделению сетей и определению масок можно решить основываясь на том, как используется маска сети (см.п.2).
    4. Для виндовых машин фактический стандарт управления доменом - AD. По понятным причинам - предоставляется производителем винды.
    Но есть и аналоги. Из платных у Novell есть соответствующий продукт, которые то же умеет в виндовые GPO и т.п.
    Жаль, что сама Novell уже не существует и похоже "пошла по рукам", но ее продукты используются до сих пор. Некоторые продукты Novell опережали конкурентов на года.
    В основе AD лежит служба каталогов (посмотрите определение в вики). Есть открытый стандарт для подобных служб - LDAP. Есть открытые и проприетарные решения, реализующие службу каталогов. Как служба каталогов AD не единственная и далеко не лучшая. Кстати, на сколько я знаю, именно в Novell была разработана первая служба каталогов, когда еще AD даже в проекте не было.
    Но AD это не только служба каталогов, это еще и механизмы управления раб.станциями, пользователями и т.д. и т.п. И вот это все в совокупности делает AD не заменимой вещью для управления виндовой сетью.
    Ответ написан
    Комментировать
  • Как использовать RDP по одному адресу и в локалке и по интернету?

    @res2001
    Developer, ex-admin
    Настройте разные DNSы для внутренних пользователей и для внешних. И используйте имена для подключений.
    Ответ написан
    Комментировать
  • Как сделать чтобы Windows могла проверить подлинность самоподписанного сертификата?

    @res2001
    Developer, ex-admin
    Попробуйте добавить сертификат в Personal, Trusted People или Trusted Device
    А вообще - не используйте самоподписанный сертификат.
    Поднимите свой ЦС. Сгенерируйте сертификат ЦА, и сертификат сервера, который будет подписан сертификатом ЦА. На клиентах устанавливаете в корневые доверенные центры сертификации сертификат ЦА и будет вам счастье.
    Можно использовать встроенный в Windows Server Центр сертификации, или использовать openssl.

    Другой вариант - ослабить проверку сертификата у клиента. Думаю как-то это должно делаться в винде, возможно через реестр или GPO. Но я бы не стал этого делать.
    Ответ написан
    Комментировать
  • Как подсчитать необходимый размер буфера для monotonic_buffer_resource?

    @res2001
    Developer, ex-admin
    Например, в std::vector определяется тип value_type - это как раз тип элемента вектора.
    Можете использовать конструкции типа:
    sizeof(decltype(vector_val)::value_type)
    или
    sizeof(decltype(vector_val.back()))

    для вычисления размера элемента вектора, где vector_val - существующий экземпляр вектора
    Ответ написан
  • Как подключить рдп на другую сеть?

    @res2001
    Developer, ex-admin
    Можно. Но вам нужен роутер поддерживающий резервирование каналов. Подберите подходящий.
    Ответ написан
    Комментировать
  • Добавить задачу в авто запуск?

    @res2001
    Developer, ex-admin
    С помощью утилиты schtasks можно добавлять задания в планировщик.
    С помощью reg add - можно добавить ключи в реестр для автозапуска.
    Но если вам нужны права администратора при выполнении программы, то в обоих случаях при вызовах schtasks и reg вы должны обладать этими правами.
    Ответ написан
  • Как решить проблему с открытием текстового файла в C?

    @res2001
    Developer, ex-admin
    Потому что практически все функции могут вернуть ошибку тем или иным образом.
    Когда fopen возвращает NULL, то это сигнал, что произошла ошибка при выполнения функции. Вы должны проанализировать значение errno и вывести осмысленное сообщение для пользователя.
    https://en.cppreference.com/w/c/io/fopen
    Сейчас же у вас на все ошибки выдается единственное сообщение. Вы можете просто вызывать функцию strerror с кодом ошибки errno, чтоб получить нормальное актуальное сообщение об ошибке.
    https://en.cppreference.com/w/c/string/byte/strerror

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

    @res2001
    Developer, ex-admin
    Когда вы за натом провайдера, то внешний сервис может знать только адрес с которого вы реально выходите в интернет, т.е. внешний адрес NATа.
    Внешний сервис может заблокировать этот адрес. Тогда все ваши соседи по NATу, автоматически окажутся заблокированы.

    Другой момент: у провадйера пул белых адресов, с которых клиенты могут получать доступ в инет. В пуле может быть несколько подсетей, выданных провайдеру.
    Информация о подсетях провайдера общедоступна в интернете. Ее можно получить через сервисы whois и т.п.
    Так что получив один адрес, сервис может узнать всю подсеть провайдера и заблокировать ее всю.
    Ответ написан
    3 комментария
  • Как можно передать ссылку/адрес на относительно большой файл из go в c++?

    @res2001
    Developer, ex-admin
    А если скачанный файл будет размером в гигабайты. Куда вы денете такой файл в памяти? По моему это не правильная стратегия.

    Вы можете использовать shared memory для предоставления доступа к файлу. Но вам еще надо дать знать внешней программе, что память готова для ее обработки. А так же после обработки внешняя программа должна дать знать вашей программе, что она свою работу закончила. Тут уже не обойтись без механизмов IPC: каналы, именованные каналы, unix сокеты, eventfd, обычные сокеты, ...
    Но если внешняя программа будет запускаться из вашей программы как дочерний процесс, то можно просто ждать завершения процесса. Но процесс может завершиться аварийно, так что надо анализировать код возврата, который процесс должен обязательно вернуть.
    Ответ написан
    1 комментарий
  • Почему возникает ошибка C1014 "Too many include files: depth 1024"?

    @res2001
    Developer, ex-admin
    Поставьте первой строкой в заголовке
    #pragma once
    Возможно это избавит вас от ошибки.

    И зачем вы делает
    #include "Graphic_Library.cpp"
    не понятно.
    Это может говорить о том, что интерфейс, подключаемый в заголовочном файле вы не доработали, или какие-то другие ошибки. Подобная конструкция, конечно, не является ошибкой сама по себе, но, как правило, так не делают.
    Ответ написан
  • Как запустить cmd внутри bat для выполнения команд?

    @res2001
    Developer, ex-admin
    Батник и так выполняется внутри cmd. Обычно дополнительно cmd запускать не надо.
    Просто напишите нужные команды в батнике и запускайте в cmd или в проводнике (тогда cmd запустится автоматически и выполнит батник).
    Ответ написан
    2 комментария
  • Как пишут код на C?

    @res2001
    Developer, ex-admin
    K&R - это не стандарт Си и даже не учебник. Просто популярная книжка от авторов языка про язык.
    Сам язык достаточно простой, выучить его можно легко. Начать можно с того же K&R.
    Ответ написан
    Комментировать
  • Зачем нужны 4 раздела диск 0?

    @res2001
    Developer, ex-admin
    Вин10 использует для своей работы не только диск C:, но еще и другие вспомогательные разделы, которые по умолчанию не монтируются.
    Почитайте что-нибудь о разбиении диска виндой, например эту статью: https://www.cnews.ru/news/top/2020-07-13_ustanovsh... (просто в гугле первая ссылка)
    Так что просто так удалять разделы не советую - рискуете тем, что комп перестанет загружаться.
    Кроме того производители ноутов любят устанавливать "из коробки" свое собственно ПО для восстановления системы "одной кнопкой". Обычно это восстановление достигается за счет использования не смонтированного раздела, куда делается какой-то бэкап. Часто эти схемы никогда не используются или вообще не работают и возможно ПО уже удалено из винды, но раздел на диске так и висит никому не нужный.
    Ответ написан
    Комментировать
  • Как организовать установку и обновление ПО для linux серверов без прямого доступа в интернет?

    @res2001
    Developer, ex-admin
    Я за локальные репы. Этим и трафик сэкономите. Правда довольно много дискового пространства потребуется.
    Ответ написан
    Комментировать
  • Как удалить файл превышающий размер?

    @res2001
    Developer, ex-admin
    Проверяйте размер и удаляйте.
    Получить размер файла можно с помощью модификаторов. Описание модификаторов смотрите в call /? или for /?
    Батник запускать из шедулера.
    Ответ написан
    Комментировать
  • Можно ли восстановить систему windows(без переустановки) используя установочную флешку с образом?

    @res2001
    Developer, ex-admin
    Можно установить без форматирования, поверх существующей системы. И еще, помнится, был вариант обновления установки (Update), то же можно использовать.
    Не факт, что установленные программы останутся в рабочем состоянии, но данные никуда не денутся.
    Ответ написан
    Комментировать
  • Выбор актуальной переквалификации из системного администратора?

    @res2001
    Developer, ex-admin
    Из админа проще уйти в devops, можно попытаться найти удаленную работу, если в вашем городе нет вакансий.
    Так же более сложный вариант - переквалифицироваться в программиста. Зарплата больше и удаленные вакансии есть.
    Ответ написан
    Комментировать
  • Как использовать одно состояние переменных заголовочного файла в нескольких исходных файлах программы?

    @res2001
    Developer, ex-admin
    Стоит знать, что #pragma once не стандартная директива. Ее наличие зависит от компилятора. В популярных компиляторах актуальных версий она поддерживается.
    Include guards - универсальный стандартный механизм, основанный на препроцессоре Си, поддерживается всеми компиляторами Си с лохматых времен.
    Ответ написан
  • Как написать .bat для сканирования измененных файлов и что в етих измененных файлов подставлялась дата?

    @res2001
    Developer, ex-admin
    Отслеживать изменения в файлах можно с помощью аттрибута "архивный".
    Этот аттрибут выставляется автоматически ОС при любом изменении файла.
    Вывести список файлов, у которых аттрибут "архивный" выставлен можно с помощью dir /a:a
    Получить дату/время изменения файла можно с помощью модификаторов переменной цикла. Смотрите for /?
    После переименования файла нужно снимать аттрибут архивный - это будет признак того, что файл уже обработан и в следующий раз он в обработку не попадет (если не будет модифицирован). Сделать это можно командой attrib /?
    Ответ написан
    Комментировать