Задать вопрос
  • Не могу понять почему работает vpn?

    @res2001
    rudaki29rus, Теоретически, можно в поддержке уточнить, по каким критериям они блочат ресурсы в интернете. Кто составляет белые списки, где их можно увидеть.
    Написано
  • Не могу понять почему работает vpn?

    @res2001
    rudaki29rus, С помощью сервисов whois можно проверить кому принадлежат адреса: ваш домашний внешний адрес и рабочий внешний адрес. И если вдруг окажется, что это одна и та же лавочка - ну значит, скорее всего, блокировать не будут. И вообще вдруг адреса окажутся из одной подсети.
    Но тут гарантий нет, как на то что блокировать не будут (просто шансы увеличиваются на это), так и на то, что whois прояснит ситуацию.

    В остальном, никто, кроме самого оператора, вам на этот вопрос не ответит.
    А оператор на этот вопрос вам отвечать не станет, даже если очень просить.
    Написано
  • Обманывает ли меня Ростелеком и что с его интернетом?

    @res2001
    Думаете, с просто так юрики платят серьезные деньги за подключение? У юриков обычно именно заявленная скорость, без "до".

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

    Юрики обычно пытаются гарантировать постоянную скорость до, например, своего филиала в городе N. В этом случае организуют "выделенную" линию и за нее платят отдельно и это не интернет.
    Возможен вариант, когда надо обеспечить гарантированную скорость к определенным узлам/сайтам в интернет, тогда это должно быть обоюдно (сайт/узел должен то же захотеть предоставлять свои услуги с гарантированной скоростью этому юрику), в этом случае наверное ставят на площадке провайдера свой сервер, чтоб он оказался внутри сети оператора с гарантированной скоростью.
    Была на моей практике история, когда моя мухосранская контора подключалась к клирингу одного крупного банка в Москве - банчок сразу сказал - не хотите проблем со скоростью передачи подключайтесь через такого и такого оператора (у них было 3 или 4 оператора на выбор). Нам тогда повезло, что и моя контора сидела на одном из операторов из списка, так что особо ничего не пришлось менять. И т.д. и т.п.

    В любом случае речь никогда не идет о гарантированной скорости на весь интернет.

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

    Как-то так вижу.
    Написано
  • Не могу понять почему работает vpn?

    @res2001
    Белые списки, видимо, тупо по диапазонам IP сетей и/или доменным именам.
    Вам повезло, что ваш рабочий адрес попал в белый диапазон домашнего оператора.
    По каким причинам он в белых списках - это к оператору. Может быть и на работе и дома один и тот же оператор - не будет же он сам себя блочить. Или другие причины.
    Если не повезет - удалят из списка и работать перестанет.
    Пользуйтесь пока дают :-)
    Написано
  • Почему не монтируются сетевые шары при VPN?

    @res2001
    Дмитрий Шумов, Есть 2 варианта того, как ВПН клиент попадает внутрь сети за ВПН сервером:
    1. через NAT на ВПН сервере
    2. с помощью настроенной маршрутизации
    Какой вариант у вас?

    Обычно, когда настраивают ВПН по мануалам из интернета, то делают через NAT. В этом случае маршруты на компах внутри сети (за ВПН сервером) настраивать не надо. Но CIFS через NAT может работать криво (или вообще не работать).
    Так что думаю, вам нужен вариант с маршрутизацией. Но для этого требуется добавить маршрут до ВПН сети на каждый комп внутри сети (за ВПН сервером), к которому вы хотите получить доступ с ВПН клиента. Единственный вариант, когда этого можно не делать - это если ВПН сервер является одновременно и сервером по умолчанию для компов внутри сети (в вашем варианте, похоже это не так).
    Написано
  • Как узнать, хранятся числа в компьютере в прямом, дополнительном или обратном коде?

    @res2001
    Обычно это можно без копирования сделать:
    unsigned int y = -2;
    printf("0x%X\n", y);

    Компилятор сам приведет -2 в нужный формат и присвоит полученную комбинацию битов беззнаковой переменной. Как правило удобней это делать с -1, в дополнительном коде будет 0xFFFFFFFF.
    Возможно это то же UB, но такой подход регулярно встречается в коде.
    Написано
  • Какой яп и фреймворк выбрать для создания сервера?

    @res2001
    KIberKOtlEtf, Есть смысл делать сборку для винды на винде :-) Поставьте виртуалку с виндой и собирайте там: msys2+mingw или MSVS/MS build вам в помощь.
    Это избавит вас от малопонятных на данном этапе ошибок, связанных с разными платформами и компиляторами.
    Написано
  • Какой яп и фреймворк выбрать для создания сервера?

    @res2001
    Писать кросс-платформенное ПО на С/С++ - это отдельный скил у программиста.

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

    Это не значит, что на С/С++ нельзя писать кросс-платформенно. Можно и многие так и делают, только кросс-платформенность должен в этом случае обеспечить сам программист, а не ЯП.
    Хотя сам по себе С++ вполне себе кросс-платформенный и его стандартная библиотека то же (правда могут быть нюансы даже на одной платформе, но на разных компиляторах), но стандартная библиотека С++ не включает в себя интерфейс для сетевого взаимодействия. Даже более-менее сложная работа с файловой системой появилась там не так давно.

    Если вы используете в кросс-платформенном ПО какую-то библиотеку, то библиотека то же должна быть кросс-платформенной и поддерживать те платформы, для которых вы планируете собирать свое ПО.
    На сколько я знаю boost.asio прекрасно работает под виндой, так что в этом плане не вижу проблем.

    На счет WinSock - по большому счету на винде других альтернатив нет для работы с сетью, тот же boost.asio внутри должен использовать WinSock в каком-то виде, чтоб выполнять свой функционал на винде. Точно так же, как и любые другие ЯПы, где есть поддержка сети, на винде используют WinSock.
    WinSock это то же, что и сокеты беркли на линуксе. Попробуйте написать что-то под линь с сетью без сокетов.
    Написано
  • Удаление кэшированного пароля Windows - как?

    @res2001
    Akina, В винде есть утилита cmdkey для управления Диспетчером учетных записей из ком.строки.
    Можно попробовать с ее помощью в скрипте предварительно нужную запись создавать, потом удалять.
    Кстати, можно начать с того, что проверить список сохраненных учетных записей после выполнения net use. Возможно они все таки сохраняются, как временные, даже без /persistent.

    Еще есть утилита vaultcmd, то же вроде бы позволяет делать аналогичные действия, но я ее не использовал, так что это не точно. Из power shell то же можно управлять учетными записями.
    Написано
  • Имя массива это адрес первого элемента или указатель на его первый элемент в Си?

    @res2001
    AslHack, Немного добавил вывода в ваш тест
    Посмотрите результат на годболте.
    Полезно будет сравнить ошибки gcc и clang. Поведение clang по умолчанию более адекватное - он предупреждает про усечение размера результата в операции sizeof где в операнде была адресная арифметика.

    Если со статическим массивом используется адресная арифметика, то происходит не явное преобразование имени массива в указатель на его первый элемент. Соответственно теряется информация о полном типе массива. Именно об этом предупреждает clang при компиляции (а gcc молчит как пратизан) и это хорошо видно в выводе sizeof.
    То же самое происходит при передаче массива в функцию.

    Т.е. zippo + 1 имеет тип int[2], а не int[4][2] как можно было бы предположить.
    Написано
  • Имя массива это адрес первого элемента или указатель на его первый элемент в Си?

    @res2001
    Увлекательная беседа :)
    AslHack,
    zippo - адрес всего массива zippo[4][2], тип int[4][2];
    zippo[0] - адрес первой строки массива zippo, тип int[2];
    *zippo - то же, что и zippo[0]

    Учитывая, что значения адреса для zippo, zippo[0], *zippo, zippo[0][0] - одно и то же, то это может вводить в заблуждение. Поэтому вывод вашего последнего теста надо рассматривать совместно с типами, т.е. смотреть пару адрес и тип совместно - только тогда вы поймете, что думает о них компилятор.
    Поскольку тип в строковом представлении получить в run-time проблематично, то можно вместо типа использовать результат sizeof и уже по этому значению определять тип элемента.

    Проще всего, чтоб не делать ошибок, при работе со статическими массивами всегда работать с ними через индексацию, без адресной арифметики. И относится к имени массива именно как к массиву, а не как к его первому элементу (т.е. не употребляйте *zippo).
    Написано
  • Почему в ethtool не выводится информация о партнёре?

    @res2001
    Исходный код утилиты ничего не даст - там обращение к драйверу ядра через netlink по умолчанию (или через ioctl если netlink не доступен). Сама утилита лишь отправляет запросы, получает ответы и выводит их на экран.
    Так что это вопрос точно к драйверу конкретного адаптера, а не к ethtool.
    Написано
  • Имя массива это адрес первого элемента или указатель на его первый элемент в Си?

    @res2001
    Имя массива - это адрес начала массива. Тип статического массива - это массив, а не тип его первого элемента, поэтому и имя рассматривается как адрес начала массива.
    С двумерным массивом все работает аналогично. Имя двумерного массива - это адрес начала всего двумерного массива.
    Напишите тест где выводите sizeof(arrOne) и sizeof(arrTwo) и разные другие варианты, которые придут в голову. Это даст понимание того, как компилятор воспринимает имя массива.
    Написано
  • Как исправить некорректное отображение кириллицы?

    @res2001
    Василий Банников,
    Честно скажу, что я хз какой бест практис для C++ на винде

    Я то же не в курсе. Похоже, каждый решает для себя сам этот вопрос.

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

    @res2001
    С моей точки зрения, самым правильным вариантом будет последний.

    Этот вариант хорош, только если вы пишите "хело ворд" или какую-нибудь лабу в универе, чтоб показать один раз.

    С моей точки зрения правильные варианты 2 или 3. Например, посмотрите на большинство консольных утилит, которые поставляются вместе с виндой из коробки - они нормально выводят русские буквы не зависимо от текущей кодировки консоли.
    Сам лично, в бытность свою сетевым админом, не однократно вспоминал "добрым" словом создателей консольных утилит, которые принудительно меняли кодировку из программы. Часто консольные утилиты используют из командных сценариев, где обычно кодировку выставляют в самом начале, и если утилита ее сменит, то придется это специально обходить в коде сценария, что не удобно. А представьте, что сценарий большой (это не редкость) и внутри используется несколько разных утилит и каждая из них норовит сменить кодировку на свою - бороться с этим довольно трудно.

    Кодировка консоли винды легко меняется на лету командой chcp, и русских кодировок в винде из коробки минимум 3 (866, 1251, UTF8), причем по умолчанию используется 866 (а вовсе не 1251).
    К слову, проверять правильность отображения кирилических символов в консоли VSCode (как и в любой другой IDE) не стоит, т.к. сами IDE обычно настраивают кодировку в собственной консоли так как им удобно. В консоли cmd.exe кодировка вероятно будет другой.
    Написано
  • Как добавить библиотеки в CMakeLists?

    @res2001
    Для подключения библиотек обычно пользуюсь pkg_check_modules(). find_package() использую, как правило, только для чего-то типа Threads.
    До использования pkg_check_modules() его надо подключить с помощью:
    find_package(PkgConfig REQUIRED)

    pkg_check_modules() для поиска использует утилиту pkg-config, которую можно установить в любой дистрибутив. pkg-config использует для поиска файлы описания библиотеки (*,pc, файлы обычно лежат в /usr/lib/pkgconfig и/или /usr/lib/x86_64-linux-gnu/pkgconfig). Файлы описания обычно готовят сами создатели библиотек и поставляются они вместе с пакетом dev библиотеки, поэтому файлы описания обычно одинаковы для всех дистрибутивов и подобной проблемы тут просто не существует. Имя модуля, указываемое при вызове pkg_check_modules() - это имя *.pc файла.

    Саму утилиту можно вызвать из командной строки вручную, посмотреть на параметры, что возвращает и т.п. Еще можно встретить makefile, где внутри используется pkg-config.

    Конечно, если в библиотеке нет pc файла, то этот вариант не сработает. Но в вашем случае pc вроде бы должен быть.

    Для справки смотри: https://cmake.org/cmake/help/v3.25/module/FindPkgC...
    Написано
  • Что это такое, почему оно вылезло?

    @res2001
    Единорог Безрогов, Это все не важно.
    Важен результат - у вас на компе что-то происходит и вы об этом не имеете никакого понятия.
    Нужно это понятие поиметь, для этого надо произвести некоторые разыскные мероприятия. В конце концов - удалите TAP драйвер, он обычно удаляется стандартными средствами, и то ПО, которому он нужен должно перестать работать и может начнет проявляться какими-нибудь ошибками.
    Ютубу и видео плеерам TAP драйвер без надобности.

    Обычно TAP драйвер используется каким-то софтом, который хочет перехватывать трафик и что-то с ним делать.
    Например - OpenVPN перехватывает трафик предназначенный для передачи по ВПН с помощью TAP драйвера, шифрует его и передает в физический сетевой адаптер. Вместо шифрование другое ПО может делать что-то свое.
    Написано
  • Что это такое, почему оно вылезло?

    @res2001
    Видимо на комп было установлено ранее какое-то ПО, у которого в зависимостях TAP драйвер. Он довольно много где используется. Например в OpenVPN. После перезагрузки компа, возможно, просто продолжается его установка.
    Но почему вы об этом не знаете? Вот вопрос.

    Если в последние несколько дней вы не устанавливали на комп ничего, то стоит посмотреть, не появились ли какие-то новые процессы в системе, нет ли повышенной активности (загрузки ЦПУ/сети/диска). Возможно подхватили какого-то зверя, ведь защитника у вас нет :) - стоит проверить комп на вирусы.

    Сам по себе TAP драйвер не является вирусом или опасным ПО, но тот кому он потребовался вполне может быть им.
    Написано
  • Можно ли в Windows 10 без виртуальной машины сделать так, чтобы OpenVPN подключение распространялось бы только на конкретные программы?

    @res2001
    Если ваша определенная программа ходит на определенные адреса в интернете (и желательно, чтоб эти адреса не менялись со временем), то можно через таблицу маршрутизации завернуть конкретно эти адреса в ВПН, добавив необходимые маршруты. И все, не надо никаких дополнительных программ вообще.
    Тут конечно могут быть нюансы, не позволяющие применить такой подход, но в общем будет работать.
    Правда ходить по этим адресам через ВПН будет не только эта программа, но и другие, которым может быть то же понадобятся эти же адреса.
    Написано