Задать вопрос
  • Почему пайтон делит не верно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это вы что-то не то делаете.
    >>> print(0.000866 / 10000)
    8.660000000000001e-08
    Ответ написан
    Комментировать
  • Как получить заголовок Сontent-Disposition?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вам возвращается страница с требованием авторизации. Доступ к файлу возможен только по логину/паролю.
    К тому же, get_headers() полностью скачивает данные и только потом возвращает заголовки.
    Ответ написан
    2 комментария
  • Как отправить файл с данными с одного сервера на другой?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    CURLFile или curl_file_create()
    Ответ написан
    1 комментарий
  • Что за способ представления float через 4 byte и int?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    IEEE 754, число одинарной точности.
    Берём онлайн-конвертер, подставляем ваше 3.51, получаем 0x4060a3d7 = 1080075223.
    6728b27b62938189104727.png
    Ответ написан
    1 комментарий
  • Как работает get запрос в https?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Серверу приходит запрос (GET, POST, PUT, PATH, DELETE, OPTIONS, HEAD или что-то там ещё). Сервер выполняет определённые действия и возвращает ответ или ошибку.
    От кого пришёл запрос - абсолютно неважно. Это может быть браузер, самописный скрипт, другой сервер (реверс-прокси). Если сервер принял запрос, то он ответит.
    Что получатель делает с ответом - серверу неизвестно. Получатель может показать ответ на экране, сохранить в файл, распарсить и вытащить какие-то данные и т.п. Сервер ни о чём не узнает.
    Ответ написан
    1 комментарий
  • Ошибка: 'function' object has no attribute 'to_dict' Бот телеграма как решить ошибку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    + import traceback
    ...
    - print(f"Ошибка: {e}")
    + print(traceback.format_exc())
    Ответ написан
    8 комментариев
  • Как отправить сообщение конкртеному пользователю через бота?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Плохо писать бот на питоне, когда не знаешь питон?
    self - это общепринятое название первой переменной в методах класса. Именно в ней передаётся экземпляр класса при вызове метода.
    Вы пытаетесь вызвать метод класса как независимую функцию, поэтому возникает ошибка. Необходимо сначала создать экземпляр класса, а потом уже вызывать функцию для этого экземпляра.
    Ответ написан
  • Как можно сделать форматирование и вывод JSON в таблице?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const json = '{"test":{"a":1,"b":false,"c":"string"},"status":"ok"}';
    const prettyJson = JSON.stringify(JSON.parse(json), null, 2);
    console.log(prettyJson);
    // '{
    //   "test": {
    //     "a": 1,
    //     "b": false,
    //     "c": "string"
    //   },
    //   "status": "ok"
    // }'

    Для вывода использовать стиль white-space: pre и, возможно, моноширинный шрифт.
    Ответ написан
    Комментировать
  • С диском проблема или же ложная тревога?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Offline_Uncorrectable могут возникать, например, при аварийном отключении питания, когда диск не успевает полностью записать секторы из кэша. Но могут и при реальном повреждении диска. Эти секторы, как и Current_Pending_Sectors, могут быть убраны из ошибок, если повторная запись в них будет успешной. Если же запись не удастся и второй раз, то будет попытка ремапа секторов в резервную зону (Reallocated_Event_Count) и, при удачном ремапе сектор отметится в Reallocated_Sector_Ct.
    Так что пока стоит просто проследить за поведением диска. Если счётчики расти не будут, то можно оставить всё как есть.
    Ответ написан
    1 комментарий
  • Как расшифровать oid полученные через snmpwalk?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Можно через MIB, можно использовать online-сервисы, например https://oidref.com
    Например
    snmpwalk -v 2c -c public corerouter.my.domain
    ...
    iso.3.6.1.2.1.1.1.0 = STRING: "RouterOS CRS309-1G-8S+"
    iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.14988.1
    ...

    Получим описание интересующего OID'а. Естественно, предварительно надо установить пакет со стандартными MIB'ами, в Ubuntu это snmp-mibs-downloader.
    snmptranslate -mALL -Td iso.3.6.1.2.1.1.1.0
    SNMPv2-MIB::sysDescr.0
    sysDescr OBJECT-TYPE
      -- FROM	SNMPv2-MIB, RFC1213-MIB
      -- TEXTUAL CONVENTION DisplayString
      SYNTAX	OCTET STRING (0..255) 
      DISPLAY-HINT	"255a"
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"A textual description of the entity.  This value should
                include the full name and version identification of
                the system's hardware type, software operating-system,
                and networking software."
    ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysDescr(1) 0 }

    snmptranslate -Td -mAll iso.3.6.1.2.1.1.2.0
    SNMPv2-MIB::sysObjectID.0
    sysObjectID OBJECT-TYPE
      -- FROM	SNMPv2-MIB, RFC1213-MIB
      SYNTAX	OBJECT IDENTIFIER
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"The vendor's authoritative identification of the
                network management subsystem contained in the entity.
                This value is allocated within the SMI enterprises
                subtree (1.3.6.1.4.1) and provides an easy and
                unambiguous means for determining `what kind of box' is
                being managed.  For example, if vendor `Flintstones,
                Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
                it could assign the identifier 1.3.6.1.4.1.424242.1.1
                to its `Fred Router'."
    ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysObjectID(2) 0 }

    Видим, что у микротика есть ещё свой enterprise-блок с кодом 14988, в котором находятся специфичные для него OID'ы. Если скачать MIB для микротика (в папку ~/.snmp/mibs), то в нём увидим строку
    mikrotik OBJECT IDENTIFIER ::= { enterprises 14988 }
    .
    Получим OID'ы микротика
    snmpwalk -v 2c -c public corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    iso.3.6.1.4.1.14988.1.1.3.100.1.2.17 = STRING: "cpu-temperature"
    iso.3.6.1.4.1.14988.1.1.3.100.1.3.17 = INTEGER: 22
    iso.3.6.1.4.1.14988.1.1.3.100.1.4.17 = INTEGER: 1
    ...

    snmptranslate -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.2.17
    MIKROTIK-MIB::mtxrGaugeName.17
    
    snmptranslate -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.3.17
    MIKROTIK-MIB::mtxrGaugeValue.17
    
    snmptranslate -Td -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.4.17
    MIKROTIK-MIB::mtxrGaugeUnit.17
    mtxrGaugeUnit OBJECT-TYPE
      -- FROM	MIKROTIK-MIB
      SYNTAX	INTEGER {celsius(1), rpm(2), dV(3), dA(4), dW(5), status(6)} 
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"units"
    ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) mikrotik(14988) mikrotikExperimentalModule(1) mtXRouterOs(1) mtxrHealth(3) mtxrGaugeTable(100) mtxrGaugeTableEntry(1) mtxrGaugeUnit(4) 17 }

    Видим, что под OID'ом 1.3.6.1.4.1.14988.1.1.3.100.1.3.17 находится температура процессора (mtxrGaugeName = cpu-temperature) в градусах цельсия (mtxrGaugeUnit = 1) и сейчас она равна 22 градусам (mtxrGaugeValue = 22).

    P.S. И да, snmpwalk умеет подключать MIB'ы:
    snmpwalk -v 2c -c public -m MIB:ALL corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    MIKROTIK-MIB::mtxrGaugeName.17 = STRING: cpu-temperature
    MIKROTIK-MIB::mtxrGaugeValue.17 = INTEGER: 23
    MIKROTIK-MIB::mtxrGaugeUnit.17 = INTEGER: celsius(1)
    ...

    или с полными OID'ами:
    snmpwalk -v 2c -c public -m MIB:ALL -O f corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeName.17 = STRING: cpu-temperature
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeValue.17 = INTEGER: 22
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeUnit.17 = INTEGER: celsius(1)
    ...
    Ответ написан
    2 комментария
  • Как изменить кодирование URL ссылок сайта?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    %B9 - это код символа № в кодировке Windows-1251.
    Похоже, что имена файлов на диске у вас сохранены именно в ней. Надо перекодировать имена в UTF-8.
    Ответ написан
    Комментировать
  • Какие нужны условия, чтобы выставить тип загрузки службы - BOOT?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Boot (0) и System (1) допустимы только для служб драйверов.
    SERVICE_BOOT_START - 0x00000000 - A device driver started by the system loader. This value is valid only for driver services.
    SERVICE_SYSTEM_START - 0x00000001 - A device driver started by the IoInitSystem function. This value is valid only for driver services.
    Ответ написан
    5 комментариев
  • Почему не отправляет формы в телеграм?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Кажинный раз одно и то же.
    Для начала выберем самый извращённый способ отправки HTTPs-запроса через fopen.
    Затем вместо нормальной обработки ошибки выведем одно слово Error.
    Ну и напоследок будем гадать что бы это слово могло за собой скрывать.

    Перепишите запрос на curl, включите вывод ошибок, выводите полностью пришедший от сервера ответ и не гадайте по одному слову.
    Ответ написан
    Комментировать
  • Ошибка в SQL запросе WHEN THEN как исправить?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Два базовых подхода - stateful и stateless.
    В первом случае на сервере хранится состояние сессии, а в обмене с клиентом передаётся только идентификатор этого состояния (та самая кука SESSIONID). Где именно хранится состояние - в отдельном файле, базе данных или отдельном сервисе - определяется архитектурой системы.
    Во втором случае состояние хранится в токене, например JWT. Этот токен формируется при аутентификации/авторизации пользователя, хранится на клиенте и передаётся при каждом запросе к серверу (либо в куках, либо в параметрах запроса). При распределённой системе сервер, выдающий токены может быть отделён от остальных а балансировщик может не беспокоиться, на какой именно сервер отправлять запрос.
    Ответ написан
    Комментировать
  • Нужен Код партнера* для битрикс 24 регистрации где взять?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обратите внимание на поле Код партнера – это префикс, который будет подставляться в дальнейшем в символьный код, идентифицирующий ваши решения в нашем каталоге. Если взять в качестве примера решение по интеграции со Stripe (https://www.bitrix24.ru/apps/?app=integrations24ru...), то integrations24ru является как раз этим кодом партнера (разработчика решения), а stripe является кодом конкретного решения, который вы укажите в дальнейшем при заполнении формы регистрации решения.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Надо настраивать на микротике DHCP Server и NAT из внутренней сети в интернет.
    https://mikrotiklab.ru/nastrojka/routera-mikrotik-...
    Ответ написан
    Комментировать
  • Вычисления datetime if()?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $now = new DateTimeImmutable();
    var_dump(new DateTimeImmutable('2024-05-20 12:45:53') < $now);
    // bool(true)
    Ответ написан
    1 комментарий
  • Как реализовать сужение\растяжение отрезка с двумя точками в JS CANVAS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Находите среднюю точку и начальное смещение
    Xc = (X1 + X2) / 2
    Yc = (Y1 + Y2) / 2
    dX = Xc - X1
    dY = Yc - Y1
    Затем просто домножаете смещение на коэффициент растяжения и прибавляете/вычитаете от центральной точки
    X1' = Xc - dX * k
    Y1' = Yc - dY * k
    X2' = Xc + dX * k
    Y2' = Yc + dY * k
    Коэффициент k = 1 соответствует начальному положению точек
    Ответ написан
    1 комментарий