Реклама

Поиск

Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt

TutorialQtWinAPI, Qt, ICMP, PING350

Сходу хочу расстроить Вас, Дорогой Читатель. Qt не обладает функционалом для работы с протоколом ICMP и соответственно придется использовать для этих целей API целевой операционной системы. Впрочем, это не удивительно. Протокол ICMP является низкоуровневым протоколом, и для работы с ним требуется использование сырых сокетов, которые не реализованы в Qt .

Но это не является особой проблемой, поскольку в основных целевых платформах имеется необходимый API для реализации ping посылок. Например Microsoft предоставляет простое использование ICMP протокола на основе функции IcmpSendEcho.

Описание IcmpSendEcho

Функция IcmpSendEcho отсылает эхо запросы IPv4 ICMP и возвращает ответы на эхо запросы. Вызов возвращается когда выходит время ожидания или заполняется буфер ответа.

DWORD IcmpSendEcho(
  _In_     HANDLE                 IcmpHandle,
  _In_     IPAddr                 DestinationAddress,
  _In_     LPVOID                 RequestData,
  _In_     WORD                   RequestSize,
  _In_opt_ PIP_OPTION_INFORMATION RequestOptions,
  _Out_    LPVOID                 ReplyBuffer,
  _In_     DWORD                  ReplySize,
  _In_     DWORD                  Timeout
);

Qt/C++ - Урок 005. QSqlRelationalTableModel - Работаем со связными таблицами

TutorialQtQSqlRelationalTableModel, QSqlRelationalTableModel example, qt, qt таблицы, sql, sqlite392

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

Данный класс позволяет устанавливать связи между таблицами и подменять в представлении значения формируемой таблицы значениями из связных таблиц.

В данной статье рассматривается вариант из двух таблиц. В одной из таблиц содержится информация об устройствах (Имя хоста и IP адрес), а во второй таблице ID этих устройств, по которым в второй таблице будут подставляться Имя хоста и IP адрес соответственно устройствам.

Структура проекта для QSqlRelationalTableModel

Структура проекта

Проект для этого урока является доработанной версией предыдущей статьи и остается неизменной.

Реклама

PyQt5 - Урок 1. QLineEdit IP Address

TutorialPyQt5ip address, ip адрес, lineedit, qlineedit, QLineEdit example, QLineEdit IP Address, pyqt5, pycharm1208

Доступны аналогичные статьи на Qt/С++ и Qt/QML

При разработке сетевых приложений может потребоваться создание формочки для ввода ip-адреса, но применение простого метода setInputMask(«000.000.000.000;_»); с данным аргументом для QLineEdit не обеспечивает должного результата, поскольку маска позволяет вводить значения 999, 657 и т.д., тогда как IP-адрес ограничивается число 255.

Одним из способов решения данной проблемы является применение Валидатора. 

Подобный урок был реализован на Qt/C++, а теперь тоже самое реализуем на PyQt5/Python.

DELL Networking. Основы политик маршрутизации (Часть 1)

TutorialТехнологии передачи данныхDELL, PBR, Route-Map176

Корпоративные сети, которые обычно используются для нескольких отделений в организации часто разделены на VLANs для увеличения производительности. Администраторы могут объединить несколько физических коммутаторов в одну виртуальную сеть для создания более эффективного использования полосы пропускания для межведомственного трафика. Участники каждого отделения, кто часто работает удаленно чувствуют увеличение производительности несмотря на большие географические расстояния. При использовании политик маршрутизации другие уровни могут быть включены разрешением администраторов правил входящего и исходящего трафика. Эти правила или установки могут изменить путь пакета по сети.

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

Qt/C++ - Урок 008. QDataWidgetMapper - Работа с базой данных через виджет

TutorialQtmapper, QDataWidgetMapper, QDataWidgetMapper example, QSqlTableModel, qt, sql418

Для отображения данных в виджет с произвольной формой используется класс QDataMapperWidget . Для работы с этим виджетом по-прежнему требуется модель, для представления данных.

Например, QSqlTableModel или QSqlRelationalTableModel , но данные подставляются уже не в QTableView , а в различные произвольные объекты. Например QLineEdit или QComboBox. Или в диалоговое окно, для добавления записей, с которым поработаем в этой статье.

Итак, задача стоит следующая. Написать программу, которая выводит в таблицу список компьютеров, а каждый компьютер имеет три поля данных: Имя Хоста, IP-адрес и MAC-адрес. Также должна быть кнопка для вызова диалогового окна, через которое Мы можем добавить новое устройство в таблицу. Также у нас должна быть возможность редактирования записей через тоже самое диалоговое окно.

После того, как задача описана, приступаем к её реализации в программном коде, который был написан в QtCreator 3.3.1 на основе Qt 5.4.1.

Структура проекта для QDataWidgetMapper

Проект создается как Приложение Qt Widgets, в котором создаются следующие файлы:

  • QDataMapperWidget.pro - профайл;
  • mainwindow.h - заголовочный файл основного окна приложения;
  • mainwindow.cpp - исходный код окна;
  • main.cpp - основной исходный файл, с которого стартует приложение;
  • mainwindow.ui - формочка основного окна приложения;
  • database.h - заголовочный файл вспомогательного класса, применяющегося для работы с информацией, которая помещена в базу данных;
  • database.cpp - исходный файл вспомогательного класса, применяющегося для работы с информацией, которая помещена в базу данных;
  • dialogadddevice.h - заголовочный файл диалогового окна для добавления и редактирования записей;
  • dialogadddevice.cpp - исходный файл диалогового окна для добавления и редактирования записей;
  • dialogadddevice.ui

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

Реклама

Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

TutorialDjangoDjango, PostgreSQL, Gunicorn, Nginx, Ubuntu580

После того, как доступ к серверу с Ubuntu 16.04 был настроен в одной из предыдущих статей, настало время развернуть на нём всё необходимое для работы сайта, а именно:

  • Django - фреймворк для разработки web-приложений на языке Python;
  • PostgreSQL - базу данных SQL ;
  • Gunicorn - WSGI HTTP сервер на Python для UNIX систем;
  • Ngnix - HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения;
  • Supervisor - это менеджер процессов, который существенно упрощает управление долго работающими программами, в частности сайтами, которые необходимо автоматически перезапускать после падений.

Ethernet over SDH

TutorialТехнологии передачи данныхEthernet, GFP, LCAS, NG SDH, SDH, VCAT354

Ethernet and SDH technologies are focused on computer and information networks. But the main problem in their interaction is pairing constant fixed speed SDH channels with pulsating Ethernet traffic. For example, VC-4 has a speed of 149.760 Mb / s, while Ethernet 100Base-T has a speed of 100 Mbit / s, respectively. Thus SDH payload channel is 70%, whereas the payload transmission GigabitEthernet generally drops to 40%. To solve these problems using technology GFP, VCAT and LCAS. In fact, these procedures have formed SDH network of the New Generation (NG SDH). Many network operators are given the opportunity to upgrade their networks instead of complete replacement of existing equipment.

DELL Networking. MLAG Протокол

TutorialТехнологии передачи данныхDELL, LACP, MLAG347

Campus Switching Architecture

Коммутаторы Dell networking N-series основаны на современной архитектуре кампусных сетей

  1. Поддерживают петлевую избыточность без использования STP протокола посредством использования протокола MLAG для создания повышенной доступности ресурсов и большой полосы пропускания.
  2. Плавное взаимодействие с существующей инфраструктурой для большей совместимости и интеграции.
  3. Объединение различных сетевых продуктов с последними открытыми стандартами протоколов для большего выбор в сети.

Архитектура кампуса на коммутаторах Dell основывается на функционале протокола MLAG запущенного в версии 6.1 операционной системы  коммутаторов Dell. В этой архитектуре два коммутатора N4064F в качестве peers агрегируют коммутаторы доступа, которые объединены в два стека также в качестве peers. Каждый коммутатор стека обслуживает часть одного этажа в здании кампуса, который агрегируется двумя 10Гбит/c uplink’ами. N4064F коммутаторы уровня агрегации с легкостью поддерживают до 24 стеков коммутаторов. Данная архитектура предоставляет повышенную полосу пропускания, преодолевая ограничения STP по блокированию избыточных портов. Сеть проектируется с высокой избыточностью в плане отказа канала связи и коммутаторов.

DELL Networking. CLI (Command Line Interface)

TutorialТехнологии передачи данныхCLI, DELL, EXEC Mode265

На примере DELL PowerConnect 3524

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

Telnet является эмуляцией терминала по TCP/IP протоколу. RS-232 терминалы могут быть виртуально подключены к локальному устройства через сетевой протокол TCP/IP. Telnet является альтернативой локальному терминалу там, где требуется удаленное управление устройством. Данный коммутатор поддерживает до 4-х сессий Telnet для управления. Все команды CLI могут быть использованы в сессии telnet.

Настройка FTP в PHPStorm для редактирования сайта

TutorialПрограммыPHPStorm, Windows, FTP210

В процессе поддержания сайта в актуальном состоянии и его развитии любой вебмастер сталкивается с тем, что ему необходимо корректировать программный код сайта, даже если он вплотную сидит на CMS вроде Wordpress . Ни один шаблон, ни одна тема оформления не могут удовлетворять до конца и вскоре поднаторевший блоггер начинает править код сайта. И тут встаёт вопрос об удобстве работы с сайтом. Ручное копирование файлов и их обратная заливка после редактирования не самый лучший выход. Поэтому использование IDE , которые могут работать с сайтом по FTP является значительным упрощением работы вебмастера.

Одной из таких IDE является PHPStorm от компании JetBrains. Всё, что требуется, это настроить подключение к сайту по FTP , при создании проекта из существующего кода. После чего IDE скачает с сайта содержимое, которое будет редактироваться. Поэтому, если вы держите сайт на каком-либо хостинге, то включите возможность подключения по FTP , если конечно хостинг это позволяет. Если не позволяет, то меняйте хостинг провайдера.

Реклама

Реклама