Что за программа iptool

Содержание

Долгое время я пользовался библиотекой SxGeo от zapimir. И до недавнего времени меня всё устраивало. Устраивало до тех пор, пока не было необходимости добавлять в БД свои данные.

Не найдя в интернете упаковщика данных от SxGeo и не найдя в себе силы требовать нужный мне функционал от разработчика, было принято решение писать свой костыль. Хотя на это решение повлиял и ещё 2 недостатка используемой библиотеки:

  • ограничение по количеству справочников;
  • невозможность узнать интервал адресов, в который входит искомый адрес;
  • отсутствие пакета в packagist.

Собственно, делюсь с вами своей разработкой.

Отличия между прототипом и моим решением:

  • IPTool — это всего лишь инструмент для создания базы данных и поиска в ней, в то время, как проект SxGeo — проект, предоставляющий не только инструментарий, но и сами базы данных;
  • База данных IPTool занимает больше места (т.к. первый адрес диапазона хранится полностью и занимает 4 байта, в то время, как в SxGeo только 3 байта);
  • IPTool имеет только один режим — чтение данных с диска (Режим подгрузки базы в память — в планах);
  • Помимо данных, IPTool возвращает диапазон IP адресов, в который входит искомый адрес;
  • IPTool предусматривает методы получения данных из справочников (всех или по порядковому номеру);
  • В базе данных IPTool предусмотрена возможность лицензирования самой базы данных;
  • IPTool легко устанавливается с помощью Composer;

Использование

Инициализация IP Tool

/* Путь к базе данных — /path/to/iptool.database */ $iptool = new DdrvIptoolIptool(‘/path/to/iptool.database’);

Получение информации о базе данных

print_r($iptool->about());
Array ( [created] => 1507199627 [author] => Anonymous Author [license] => MIT [networks] => Array ( [count] => 276148 [data] => Array ( [country] => Array ( [0] => code [1] => name ) ) ) )

Поиск информации об IP адресе

print_r($iptool->find(‘81.32.17.89’));

Array ( [network] => Array ( [0] => 81.32.0.0 [1] => 81.48.0.0 ) [data] => Array ( [country] => Array ( [code] => es [name] => Spain ) ) )

Получить все элементы справочника

print_r($iptool->getRegister(‘country’));
Array ( [1] => Array ( [code] => cn [name] => China ) [2] => Array ( [code] => es [name] => Spain ) . [N] => Array ( [code] => jp [name] => Japan ) )

Получение элемента справочника по его порядковому номеру

print_r($iptool->getRegister(‘country’,2));

💾 Не удается прочитать параметр ProductKey из файла ответов для автоматической установки

Array ( [code] => cn [name] => China ) )

Процесс создания БД более трудоёмкий, но он описан с документации, которая доступна в репозитории и в wiki GitHub’а на русском и ломаном английском.

UPD1. Сравнение скорости работы IPTool и SxGeo

Для большей достоверности результатов, я создал БД для IPTool на основе данных SxGeo

Подготовка к сравнительному тесту

$ cd /path/to/test/dir $ mkdir csv $ mkdir csv/sxgeo $ mkdir t

необходимо скопировать файлы SxGeo.php и SxGeoCity.dat в текущую директорию (/path/to/test/dir)

Rustdesk — замена для TeamViewer

Установка IPTool

$ composer require ddrv/iptool:~1.0

Импорт БД SxGeo в csv файлы

import.php
parseCity($seek,1); $sxNet = fopen(__DIR__.DIRECTORY_SEPARATOR.’csv’.DIRECTORY_SEPARATOR.’sxgeo’.DIRECTORY_SEPARATOR.’sxNet.csv’,’w’); $sxCnt = fopen(__DIR__.DIRECTORY_SEPARATOR.’csv’.DIRECTORY_SEPARATOR.’sxgeo’.DIRECTORY_SEPARATOR.’sxCnt.csv’,’w’); $sxRgn = fopen(__DIR__.DIRECTORY_SEPARATOR.’csv’.DIRECTORY_SEPARATOR.’sxgeo’.DIRECTORY_SEPARATOR.’sxRgn.csv’,’w’); $sxCts = fopen(__DIR__.DIRECTORY_SEPARATOR.’csv’.DIRECTORY_SEPARATOR.’sxgeo’.DIRECTORY_SEPARATOR.’sxCts.csv’,’w’); $ids = [ ‘cnt’ => [], ‘rgn’ => [], ‘cts’ => [], ]; for ($octet=1;$octet<=223;$octet++) < $bip = pack(‘C’,$octet); $min = $this->b_idx_arr[$octet-1]; $max = $this->b_idx_arr[$octet]; for ($b=$min; $b<=$max;$b++) < fseek($this->fh, $this->db_begin + $b * $this->block_len); $block = fread($this->fh, $this->block_len); $i = unpack(‘C4’,$bip.substr($block,0,3)); $ip = implode(‘.’,$i); $lastIp = long2ip(ip2long($ip)-1); $csvNet = [ $firstIp, $lastIp, $data[‘city’][‘id’], $data[‘region’][‘id’], $data[‘country’][‘id’], ]; fputcsv($sxNet,$csvNet); if (!isset($ids[‘cts’][$data[‘city’][‘id’]])) < $ids[‘cts’][$data[‘city’][‘id’]] = true; $csvCts = [ $data[‘city’][‘id’], $data[‘city’][‘lat’], $data[‘city’][‘lon’], $data[‘city’][‘name_ru’], $data[‘city’][‘name_en’], ]; fputcsv($sxCts,$csvCts); >if (!isset($ids[‘rgn’][$data[‘region’][‘id’]])) < $ids[‘rgn’][$data[‘region’][‘id’]] = true; $csvRgn = [ $data[‘region’][‘id’], $data[‘region’][‘iso’], $data[‘region’][‘name_ru’], $data[‘region’][‘name_en’], ]; fputcsv($sxRgn,$csvRgn); >if (!isset($ids[‘cnt’][$data[‘country’][‘id’]])) < $ids[‘cnt’][$data[‘country’][‘id’]] = true; $csvCnt = [ $data[‘country’][‘id’], $data[‘country’][‘iso’], $data[‘country’][‘lat’], $data[‘country’][‘lon’], $data[‘country’][‘name_ru’], $data[‘country’][‘name_en’], ]; fputcsv($sxCnt,$csvCnt); >$firstIp = $ip; $seek = hexdec(bin2hex(substr($block, $this->block_len — $this->id_len, $this->id_len))); $data = $this->parseCity($seek,1); > > $lastIp = ‘255.255.255.255’; $csvNet = [ $firstIp, $lastIp, $data[‘city’][‘id’], $data[‘region’][‘id’], $data[‘country’][‘id’], ]; fputcsv($sxNet,$csvNet); if (!isset($ids[‘cts’][$data[‘city’][‘id’]])) < $ids[‘cts’][$data[‘city’][‘id’]] = true; $csvCts = [ $data[‘city’][‘id’], $data[‘city’][‘lat’], $data[‘city’][‘lon’], $data[‘city’][‘name_ru’], $data[‘city’][‘name_en’], ]; fputcsv($sxCts,$csvCts); >if (!isset($ids[‘rgn’][$data[‘region’][‘id’]])) < $ids[‘rgn’][$data[‘region’][‘id’]] = true; $csvRgn = [ $data[‘region’][‘id’], $data[‘region’][‘iso’], $data[‘region’][‘name_ru’], $data[‘region’][‘name_en’], ]; fputcsv($sxRgn,$csvRgn); >if (!isset($ids[‘cnt’][$data[‘country’][‘id’]])) < $ids[‘cnt’][$data[‘country’][‘id’]] = true; $csvCnt = [ $data[‘country’][‘id’], $data[‘country’][‘iso’], $data[‘country’][‘lat’], $data[‘country’][‘lon’], $data[‘country’][‘name_ru’], $data[‘country’][‘name_en’], ]; fputcsv($sxCnt,$csvCnt); >fclose($sxNet); fclose($sxCnt); fclose($sxRgn); fclose($sxCts); > > $sxgeo = new ExtSxGeo( __DIR__.DIRECTORY_SEPARATOR.’SxGeoCity.dat’,2); $sxgeo->parseBase();

Читайте также:
Программа 5c что это

Запускаем скрипт и ждём.

$ php import.php

Создание БД IPTool из полученных csv файлов

convert.php
setAuthor(‘Ivan Dudarev’); /* Указываем лицензию. */ $converter->setLicense(‘MIT’); /* Добавляем исходники в формате CSV. */ $converter->addCSV(‘sxNet’,$sxNet); $converter->addCSV(‘sxCnt’,$sxCnt); $converter->addCSV(‘sxRgn’,$sxRgn); $converter->addCSV(‘sxCts’,$sxCts); /* Описываем справочник Country. */ $country = array( ‘id’ => array( ‘type’ => ‘int’, ‘column’ => 0, ), ‘iso’ => array( ‘type’ => ‘string’, ‘column’ => 1, ‘transform’ => ‘low’, ), ‘lat’ => array( ‘type’ => ‘double’, ‘column’ => 2, ), ‘lon’ => array( ‘type’ => ‘double’, ‘column’ => 3, ), ‘nameRu’ => array( ‘type’ => ‘string’, ‘column’ => 4, ), ‘nameEn’ => array( ‘type’ => ‘string’, ‘column’ => 5, ), ); $converter->addRegister(‘country’,’sxCnt’,0, $country); /* Описываем справочник Region. */ $region = array( ‘id’ => array( ‘type’ => ‘int’, ‘column’ => 0, ), ‘iso’ => array( ‘type’ => ‘string’, ‘column’ => 1, ‘transform’ => ‘low’, ), ‘nameRu’ => array( ‘type’ => ‘string’, ‘column’ => 2, ), ‘nameEn’ => array( ‘type’ => ‘string’, ‘column’ => 3, ), ); $converter->addRegister(‘region’,’sxRgn’,0, $region); /* Описываем справочник City. */ $city = array( ‘id’ => array( ‘type’ => ‘int’, ‘column’ => 0, ), ‘lat’ => array( ‘type’ => ‘double’, ‘column’ => 1, ), ‘lon’ => array( ‘type’ => ‘double’, ‘column’ => 2, ), ‘nameRu’ => array( ‘type’ => ‘string’, ‘column’ => 3, ), ‘nameEn’ => array( ‘type’ => ‘string’, ‘column’ => 4, ), ); $converter->addRegister(‘city’,’sxCts’,0, $city); /* Описываем диапазоны. */ $data = array( ‘city’ => 2, ‘region’ => 3, ‘country’ => 4, ); $converter->addNetworks(‘sxNet’, ‘ip’, 0, 1, $data); $errors = $converter->getErrors(); if (!$errors) < $converter->create($dbFile); > else

Запускаем скрипт и ждём.

$ php convert.php

Сравнение величины БД

$ ls -l *.dat . -rw-r—r— 1 www www 13435116 Jun 30 15:46 SxGeoCity.dat -rw-r—r— 1 www www 33190825 Oct 12 06:40 iptool.sxgeo.city.dat .

Объём базы IPTool больше в 3 раза (что не есть плюс)

compare.php

$ip = implode(‘.’,$ipa); $ips[] = $ip; > /* IPTool */ $res = []; $t1 = microtime(true); foreach ($ips as $ip) < $res[] = $iptool->find($ip); > $t2 = microtime(true); echo ‘IP Tool : ‘.($t2-$t1).PHP_EOL; /* SxGeo */ $res = []; $t1 = microtime(true); foreach ($ips as $ip) < $res[] = $sxgeo->getCityFull($ip); > $t2 = microtime(true); echo ‘SxGeo : ‘.($t2-$t1).PHP_EOL;

Сравненительный тест скорости iptool-1.0.6 и SxGeo-2.2.3

$ php compare.php

Результат трёх тестов по 100 адресов

IP Tool : 0.026905059814453 SxGeo : 0.031632900238037 IP Tool : 0.025413036346436 SxGeo : 0.023004055023193 IP Tool : 0.016932010650635 SxGeo : 0.022341012954712

Результат трёх тестов по 1 адресу

IP Tool : 0.0013048648834229 SxGeo : 0.00016021728515625 IP Tool : 0.00047779083251953 SxGeo : 0.00011301040649414 IP Tool : 0.00046205520629883 SxGeo : 0.00035595893859863

UPD2. В версии 1.0.7 алгоритм поиска переведён на бинарный поиск

Сравненительный тест скорости iptool-1.0.7 и SxGeo-2.2.3

$ php compare.php

Результат трёх тестов по 100 адресов

IP Tool : 0.012892961502075 SxGeo : 0.033740043640137 IP Tool : 0.0073931217193604 SxGeo : 0.032436847686768 IP Tool : 0.0043089389801025 SxGeo : 0.028012990951538

Результат трёх тестов по 1 адресу

IP Tool : 0.0011000633239746 SxGeo : 0.0009000301361084 IP Tool : 0.00040006637573242 SxGeo : 0.00079989433288574 IP Tool : 0.00030016899108887 SxGeo : 0.00020003318786621

Вывод

Нужно работать над размером БД;

  • реализовать связь между справочниками, это заметно сократит размер базы диапазонов;
  • склеивать интервалы с одинаковыми данными (хотя в данной БД таковых нет, они взяты из SxGeo как есть);
  • хранить начальные адреса диапазонов в виде 3х байт, как в SxGeo.

UPD 3

На некоторых проектах конвертер не нужен (база генерится в одном проекте и дублируется в другие), что добавляло лишнюю зависимость в проект (pdo_sqlite). В связи с этим было принято решение разделить библиотек на 2 проекта. Ну и под шумок сменилось пространство имён.

Теперь проект живёт здесь:

Источник: habr.com

Все о программе ip tool. IP Tools — «пакет» сетевых утилит для IT-администраторов. Защита от сканирования IP-адресов

Приложение, под «крышей» которого собрано множество утилит, отвечающих за проверку сетей. Для Android такие инструменты давно уже явление привычное. Ключевое слово — «под крышей». Гораздо проще и удобнее установить одно приложение, чем забивать память устройства большим количеством разрозненных.

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

Читайте также:
Образовательная программа сириус что это

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

Утилит в приложении немало, но ни одной бесполезной — все в той или иной степени могут пригодиться при проведении диагностики сетей. Сканер портов полезен для системных администраторов: с его помощью можно быстро провести диагностику сети и выявить вероятные уязвимости при их наличии.

Воспользовавшись настройками, можно указать IP-адрес, сменить диапазон портов, таймаут и так далее. «Ping» служит для обмена пакетами с сетевым ресурсом для проверки его доступности. В настройках указываются такие параметры, как время ожидания отклика, количество пакетов, а также их размер. Не менее интересна утилита «DNS lookup», которая предоставит данные о DNS-записях нужного домена.

Назначение инструмента «LAN сканер» очевидно из его названия. Он проверяет сеть на предмет подключённых к ней устройств и делится такой информацией, как IP и сетевые имена обнаруженных девайсов. «Whois» станет полезным инструментом для открытия данных о домене. Всё, что нужно для получения информации о владельце домена и о его регистрации. «Трассировка» даст возможность легко контролировать маршрутизацию данных. И всё это ненамного сложнее, чем в Linux или Windows. Перечислять утилиты, достойные внимания, можно долго, но и приведённых примеров хватит, чтобы убедиться: приложение IP Tools способно значительно облегчить «общение» со смартфоном, планшетом, поставив пользователя на одну ступень с юзером ПК.

Инструменты :

  • Пинг (Ping)
  • Сканер Сети (LAN Scanner)
  • Сканер Портов
  • DNS Lookup
  • Получение данных о сайте и его владельце (Whois)
  • Страница Настройки Роутера (Router Setup Page)
  • Трассировка Маршрута (Traceroute)
  • WiFi Анализатор (WiFi Analyzer)
  • Функция «Мой ip» (My IP)
  • Лог Соединений
  • IP Калькулятор
  • IP сбросить» индикатор уровня чернил при установке новых «заправленных» картриджей. Крайне полезная программа для всех обладателей принтеров серии Canon IP, которая помимо возможности установить неоригинальные контейнеры с чернилами также выполняет ряд прочих системных операций. Сразу обращаем ваше внимание на тот факт, что IPTool работает исключительно в режиме Normal и не поддерживает режим Low-Level (по крайней мере на большинстве моделей печатных устройств).

    Функционал

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

    При подключении принтера программа отображает подробную информацию о нем. В частности, утилита уведомляет о текущих уровнях чернил в картриджах, а также о портах подключения, модели устройства и так далее. В целом, информационная сводка, предоставляемая IPTool, не слишком обширна.

    Другая важная функция, выполняемая программой, заключается в записи и чтении данных EEPROM. Благодаря работе с памятью ПЗУ, она позволяет «виртуально» сменить модели устройства, а также изменить значения счетчика задержки на сушку. Официальное программного обеспечение от Canon данных операций выполнять не умеет.

    Совместимость и интерфейс

    Вся графическая оболочка IPTool умещается в одном окне. Что касается совместимости, то разработчик официально заявляет поддержку для Canon MP460, MP450, MP170, MP160, MP150 и MP180. Впрочем, это не означает что работать с другими моделями программа не будет. Из недостатков утилиты можем отметить, разве что, отсутствие русской версии.

    Ключевые особенности

    • сброс индикатора, который позволяет устанавливать «неоригинальные» картриджи;
    • запись и чтение данных из EEPROM принтера;
    • печать тестовых образцов для очистки сопел;
    • изменение значений срока сушки;
    • простой и понятный интерфейс;
    • работа исключительно с устройствами серии Canon IP.

    Удобный, как сам iPhone, универсальный, как iOS, и функциональный, как швейцарский нож, этот инструмент для диагностики сети – хорошее подспорье системному администратору и продвинутому пользователю. Утилиты, которыми пользуются при проверке сетей, теперь собраны в одном приложении – IP Tools.

    Приложение подключает устройство к роутеру с помощью Wi-Fi и сразу же получает всю информацию. На это уходит пара секунд.

    С помощью IP Tools вы не просто получите все сетевые инструменты, а сможете работать с сетями, настраивать роутер, проводить диагностику, обмениваться данными о сетях, а также проводить другую работу без ноутбука или стационарного компьютера. IP Tools имеет две версии – для iOS и Android , делая обычный смартфон или планшет удобным рабочим инструментом сетевого администратора.

    Среди важнейших преимуществ IP Tools следует отметить:

    • Большой выбор сетевых утилит, доступных в одном приложении. Перегружать память устройства не нужно.
    • Удобный интерфейс. Ничего лишнего на экране – только самое необходимое.

    Вот так выглядит виджет для панели уведомлений. Здесь собраны основные данные о сети, включая внутренний и внешний IP, IP роутера, SSID. Разработчики приложения постарались сделать его максимально удобным для пользователя. Если вам нужна основная информация о сетях, достаточно просто запустить программу – заходить в разделы и выбирать утилиты не придется. При желании можно зайти дальше.

    Так выглядят основные страницы. Слева – страница, на которую выводится подробная информация о сети, к которой подключилось ваше устройство. Как видите, данных более чем достаточно: хост, внутренний IP, шлюз и маска, местоположение и т.д. Справа – набор сетевых утилит. В IP Tools есть все, что нужно и пользователю, и администратору сетей, чтобы провести диагностику и получить данные.

    Пригодится каждая утилита. О некоторых из них – ниже.

    Сканер портов пригодится сисадмину. С помощью этой утилиты можно провести диагностику сети и найти уязвимости, если они есть. Используя настройки, можно изменить диапазон портов, указать IP-адрес и т.д.

    С помощью DNS lookup можно получить данные о DNS записях интересующего вас домена.

    «Трассировка» позволит проконтролировать маршрутизацию данных. Все почти так же просто, как в операционных системах Windows и Linux.

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

    Все утилиты описывать бессмысленно. Некоторые из них могут быть вам хорошо знакомы, другие – не очень. Но все они считаются достаточно популярными и полезными сетевыми инструментами. В IP Tools они собраны вместе, позволяя владельцу смартфона проводить диагностику, просто подключившись к сети.

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

    IP Tools уравнивает владельца мобильного устройства – планшета или смартфона – с пользователем компьютера. В этом его главное преимущество.

    • Главная
    • Программы
    • Все о программе ip tool. IP Tools — «пакет» сетевых утилит для IT-администраторов. Защита от сканирования IP-адресов

    Источник: tdelegia.ru

    IPTool

    IPTool

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

    Бесплатная

    IPTool Главная

    IPTool — это небольшая утилита, которая поможет «сбросить» индикатор уровня чернил при установке новых «заправленных» картриджей. Крайне полезная программа для всех обладателей принтеров серии Canon IP, которая помимо возможности установить неоригинальные контейнеры с чернилами также выполняет ряд прочих системных операций. Сразу обращаем ваше внимание на тот факт, что IPTool работает исключительно в режиме Normal и не поддерживает режим Low-Level (по крайней мере на большинстве моделей печатных устройств).

    Функционал

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

    При подключении принтера программа отображает подробную информацию о нем. В частности, утилита уведомляет о текущих уровнях чернил в картриджах, а также о портах подключения, модели устройства и так далее. В целом, информационная сводка, предоставляемая IPTool, не слишком обширна.

    Другая важная функция, выполняемая программой, заключается в записи и чтении данных EEPROM. Благодаря работе с памятью ПЗУ, она позволяет «виртуально» сменить модели устройства, а также изменить значения счетчика задержки на сушку. Официальное программного обеспечение от Canon данных операций выполнять не умеет.

    Совместимость и интерфейс

    Вся графическая оболочка IPTool умещается в одном окне. Что касается совместимости, то разработчик официально заявляет поддержку для Canon MP460, MP450, MP170, MP160, MP150 и MP180. Впрочем, это не означает что работать с другими моделями программа не будет. Из недостатков утилиты можем отметить, разве что, отсутствие русской версии.

    Ключевые особенности

    • сброс индикатора, который позволяет устанавливать «неоригинальные» картриджи, по аналогии с PrintHelp;
    • запись и чтение данных из EEPROM принтера;
    • печать тестовых образцов для очистки сопел;
    • изменение значений срока сушки;
    • простой и понятный интерфейс;
    • работа исключительно с устройствами серии Canon IP.

    Источник: softrare.space

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru