• Как программой установить Автоматический режим на службу Windows?

    @MaxKozlov Куратор тега PowerShell
    Если я вас правильно понял, то через powershell можно указать тип запуска для сервиса примерно так
    Get-Service openvpn | Set-Service -StartupType Automatic

    как там точно сервис openvpn называется я не помню, так что подкрутите

    ну и сам powershell скрипт можно запускать типа
    powershell -file filename.ps1
    а в filename.ps1 уже писать все нужные команды
    Ответ написан
    Комментировать
  • Как можно передавать мегабайтные данные через сокет?

    Vindicar
    @Vindicar
    RTFM!
    recv() вернёт пустой байт-массив только в одном случае - если другая сторона закрыла соединение на передачу данных (ну или в обе стороны).
    Из твоего описания не очень понятно, ожидаешь ли ты закрытия соединения, или какого-то маркера конца сообщения, или вообще сообщения известной длины.
    Также, что произойдёт, если передаваемые данные имеют длину ровно 4096 байт?
    Если принимаешь данные до конца, то тогда можно упростить код приёма данных до чего-то вида
    msg_parts = ""
    while True:
      part = conn.recv(4096)
      if part:
        msg_parts += part.decode() #по умолчанию это ascii. 
        #С многобайтными кодировками типа utf-8 могут быть проблемы, 
        #если многобайтный символ будет разбит границей пакета
        while "\n" in msg_parts:
          line, _, msg_parts = msg_parts.partition("\n")
          yield line + "\n" 
      else:
        break
    yield msg_parts

    Ну или в новом питоне можно еще короче

    msg_parts = ""
    while part := conn.recv(4096):
      msg_parts += part.decode() #
      while "\n" in msg_parts:
        line, _, msg_parts = msg_parts.partition("\n")
        yield line + "\n" 
    yield msg_parts
    Ответ написан
    3 комментария
  • Как использовать multiprocessing в tkinter?

    Vindicar
    @Vindicar
    RTFM!
    Исходи из того, что между процессами лучше передавать только примитивные типы данных и простые коллекции (списки, кортежи, словари). Так что не надо передавать объекты Tkinter как есть, извлеки из них требуемые данные и передавай их.
    EDIT:
    Идеальный сценарий - использование пары multiprocessing.Queue.
    Код дочернего процесса слушает одну очередь, и обрабатывает полученные там задания, а потом пишет в другую ответы.
    Код материнского процесса занимается работой с GUI, складывает задания в первую очередь, и время от времени мониторит вторую очередь на предмет новых ответов. Используй root.after() для мониторинга.
    Ответ написан
  • Как правильно реализовать многопоточность в Tkinter?

    @MEDIOFF
    Python Developer
    В Python потоки не параллельны(да в прочем они и так не параллельны сами по себе, так как python юзает потоки OS), почитайте про GIL, если вкратце, у вас всегда активен только один поток, и разницы нет что вы в основном потоке считаете, что в отдельном, работает только один и пока он держит GIL все другие ждут(на самом деле у вас прога будет работать даже медленней с потоками, в случае CPU-bound задач ибо у вас тратиться время на переключение контекста еще), так что если ваша задача это вычисления - то выносите эту задачу в отдельные процесс, библиотечка multiprocessing вам в помощь
    Ответ написан
    1 комментарий
  • Как правильно реализовать многопоточность в Tkinter?

    sanya84
    @sanya84
    Фанатик Python 3
    pycrypt = threading.Thread(target=self.pr, args=(login, password))
    Ответ написан
    2 комментария
  • Сайт возвращает 404 при отправке запроса requests?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    import requests
    
    headers = {
        'User-Agent': ('Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 '
                       'Firefox/14.0.1'),
        'Accept':
        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language':
        'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
        'Accept-Encoding':
        'gzip, deflate',
        'Connection':
        'keep-alive',
        'DNT':
        '1'
    }
    
    url = f'https://subtitry.ru/'
    response = requests.post(url, headers=headers).text
    print(response)
    Ответ написан
    Комментировать
  • Почему возникает ошибка "'str' object attribute 'replace' is read-only"?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Даже представить не могу, что вас вынудило на попытку присвоить методу его строковое представление.
    Ответ написан
    Комментировать
  • Как реализовать мониторинг микротиков через vpn?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Все зависит от того как настроите
    7f752d9e38.jpg
    Вот смотрите соседей вы увидите только в одном сегменте. Если же роутеры видят друг друга и не задавлены порты то подключится сможете
    Ответ написан
    Комментировать
  • Как реализовать мониторинг микротиков через vpn?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Как уже сказал Drno -
    • Ставите центральный микротик, зачастую самым удобным вариантом является небольшая VPS в датацентре и облачная лицензия микротик, которая стоит копейки.
    • Всем клиентам настраиваете автоподключение к вашему центральному по VPN.


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

    Но буду ли я, подключившись к главному микроту напрямую, видеть в winbox все остальные, которые являются клиентами ovpn
    Конечно, вы же в одной локальной сети.

    Только не забивайте в VPN IP адрес, используйте имена. Домен стоит не больших денег, но избавляет от кучи головняков, связанных с изменением IP адреса.
    Ответ написан
    6 комментариев
  • Как реализовать мониторинг микротиков через vpn?

    @Drno
    Ну у меня так и сделано...
    Стоит центр микрик в облаке. к нему цепляются по ВПН микрики заказчиков... подключаюсь к ним по ВПН адресам.
    в фаерволле подключение разрешаете из под своей ВПН сети и всё... никаких сложностей
    Чтобы "видеть" остальные - не настраивал, для этого надо разрешить свободное хождение пакетов по сети. Я просто подключаюсь по IPшникам. и конечно вижу их все во вкладке ВПН клиентов на центр микрике
    Ответ написан
    Комментировать
  • Информационная безопасность или чему учат в ВУЗах?

    kumaxim
    @kumaxim
    Web-программист
    Алгоритм примерно такой:
    1.Первым делом тебе нужна компания. Найди через знакомых человека, который тебе может подписать акт внедрения. На край мне стукни на почту,
    2.Далее делаешь какую-нибудь маленькую CRM-ку.
    Например есть магазин, часть клиентов вносят предоплату, и организация за это дает им скидку в 10-20% от розничной цены. С такими клиентами заключается договор, подписываются накладные и т.д. Поскольку в договоре содержатся персональные данные, в соответствии со 152-ФЗ их нужно защищать
    3.Открываешь РД "Средства вычислительной техники", читаешь, и подгоняешь эту CRM-ку под 5-й класс защиты, выше тебе не нужно
    4.По тексту своей работы ты пишешь, что мол я разработал систему защищенного обмена информацией на основе (... думай дальше сам чего....)
    5.Итогом ты будешь иметь клиент-серверное приложение(СУБД в облаке, окошки на ПК) на C#/Java, данные между клиентом и сервером шифруются, вход осуществляется с использованием токена.

    После защиты, как происходит в 90% случаев, свою работу ты выбросишь и получишь бумажку под названием "ДИПЛОМ", причем сейчас в дипломе даже не пишут что ты получил высшие образование, просто ДИПЛОМ... И вот, получив его ты становишься безработным.... Профит :-)

    P.S.: пособие по безработице для выпускников ВУЗов составляет 850 рублей...
    Ответ написан
    Комментировать
  • Как обновить номер рабочего места anydesk?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Удалить файл service.conf в %programdata%\AnyDesk.
    Ответ написан
    4 комментария
  • Как копировать canvas текст python?

    @o5a
    from tkinter import *
    
    def onObjectClick(event):
        obj_id = event.widget.find_withtag('current')[0]
        copy_text = event.widget.itemcget(obj_id, 'text')
        root.clipboard_clear()
        root.clipboard_append(copy_text)
    
    root = Tk()
    
    canv = Canvas(root, width=100, height=100)
    obj1 = canv.create_text(50, 30, text='Click me')
    canv.tag_bind(obj1, '<Button-1>', onObjectClick)
    canv.pack()
    
    root.mainloop()

    Альтернативно для копирования можно использовать pyperclip
    Ответ написан
    1 комментарий
  • Ошибка JS, не найтен элемент по ID?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    document.getElementById
    Ответ написан
    2 комментария
  • Как записать данные в файл на python?

    @Dev12345
    Какой-то кодер
    Так вы и так записываете в файл лог, более нормально будет использовать библиотеку logging (специальная для логгов, от python).
    Ответ написан
    1 комментарий