Иногда требуется повторять одинаковое действие несколько раз. В этих целях применяются циклы. На этом уроке вы попробуете создавать циклы C++, далее посчитаете совокупность числе в диапазоне 1-1000.
Цикл for

Если вам известно определенное количество действий и сочетаний в цикле, можно пользоваться инструментом for.
for (действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла)
Единый проход цикла именуется итерацией.
Есть и другой вариант записи, который выглядит следующим образом:
for (счетчик = значение; счетчик
В данном случае счетчик цикла представляет собой переменное значение, в котором имеется число проходов.
Описание синтаксиса
- Для начала дается первоначальный параметр счетчику, далее следует поставить знак точки с запятой.
- После устанавливается окончательное значение. Когда показатель достигнет предела, произойдет завершение цикла. Снова ставится точка с запятой.
- Задается шаг цикла, то есть значение, на которое происходит увеличение или уменьшение счетчика в процессе проходов.
Пример кода с циклом на C++
Пример программы, которая считает сумму всех чисел от 1 до 1000. Так же примеры готовых программ можно посмотреть в Шпаргалка по C++.
Как составить программу действий и вычислить?
#include using namespace std; int main() < int i; // счетчик цикла int sum = 0; // сумма чисел от 1 до 1000. setlocale(0, «»); for (i = 1; i cout сегфолт, при указании значения без инициализации, что данная переменная будет сохранять «мусор».
К мусору ничего нельзя добавить. Определенные компиляторы (gcc) задают нулевой параметр при объявлении переменной.
Цикл while в C++
Если нам не известно, какое количество итераций может быть проведено циклом, следует использовать вариант while или do…while.. Конечно, на данный момент мы знакомы с количеством итераций, однако на практике часто возникают ситуации, когда данное значение не известно. Его синтаксис выглядит так:
while (Условие)
Цикл будет проводиться, пока параметр, указанный в скобках, представляет собой истину. Попробуем решить аналогичную задачу с помощью нового цикла.
Далее приведен код, с помощью которого можно посчитать вышеуказанную совокупность чисел от 1 до 1000.
Цикл do while схож с предыдущим. Однако при выполнении нового цикла один проход будет проведен вне зависимости от заданных условий. Ниже пример программы по поиску суммы чисел от 1 до 1000, который практически будет соответствовать предыдущему варианту, но использовать do while.
Источник: bookflow.ru
15 способов прокачать iPhone с помощью автоматизаций. Например, оповещение про 80% заряда


Чем «Автоматизации» отличаются от обычных «Быстрых команд»? Для активации подобных скриптов используются конкретные триггеры, которые определяются заранее. Никакие дополнительные действия от пользователей не требуются, и в этом прелесть решения.
С помощью автоматизаций получится донастроить iPhone и iPad. Они же дадут возможность реализовать несколько действительно полезных сценариев, упрощающих взаимодействие со своим гаджетом. Всему этому и посвящена данная статья.
Как настроить автоматизации в «Быстрых командах»

Каждая автоматизация в «Быстрых командах» состоит из пары частей. С одной стороны, находится триггер, который предназначен для активации. С другой стороны, расположена одна конкретная или целый скрипт из действий. Вот как это настроить:
❶ Откройте «Быстрые команды».
❷ Перейдите в раздел «Автоматизация».
❸ Выберите возможность «Создать автоматизацию для себя» (либо ⊕ в верхнем правом углу, если другие автоматизации уже используются).

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

❻ Нажмите на кнопку «Добавить действие» и выберите одно или несколько из внушительного перечня, который предлагает приложение (в данном случае для выбора проще всего использовать поисковую строку ).

❼ На финальном этапе создания автоматизации переведите в неактивное положение переключатель «Спрашивать до запуска», чтобы созданная автоматизация работала на 100% без вашего участия.

После создания автоматизации вы сможете временно выключать ее, если в этом будет необходимость. Для этого нажмите на любую из них и переведите в неактивное положение переключать «Вкл. этой автоматизации». Обратное действие сделает их снова активными.
В примерах использования автоматизаций далее я буду указывать два основных пункта: «Триггер» и «Действия». Это поможет вам повторить их на своем iPhone или iPad. К сожалению, делиться ими по ссылке, как в случае с обычными «Быстрыми командами», нельзя .
1. Активация действий с помощью NFC-меток

- Триггеры: NFC
- Действия: к примеру, «Воспроизвести музыку»
Если у вас iPhone X и выше, вы можете использовать NFC не только для Apple Pay. Подходящая метка, приложенная к задней части смартфона может стать еще и отличным триггером для любых задач. К примеру, для запуска конкретного плейлиста на рабочем месте.
Чтобы воспользоваться этой возможностью, вам даже не придется покупать специальную NFC-метку. На ее роль подойдет и старая банковская карта с поддержкой бесконтактной оплаты. Если завалялось пару таких, каждую получится привязать к автоматизации.
2. Изменение циферблатов Apple Watch по времени

Предлагаю использовать эту автоматизацию хотя бы для того, чтобы разнообразить внешний вид своих Apple Watch. К примеру, можно просто менять цвет циферблатов X-Large. Утром синий, днем белый, вечером красный. Интересно, не так ли?
Конечно, число подобных изменений должно равняться количеству автоматизаций. Иначе указанных циферблат будет установлен единоразово, и продолжения у данного процесса попросту не будет. Тем не менее, у вас вряд ли возникнут проблемы с этим.
3. Изменение циферблатов Apple Watch по геолокации

- Триггеры: «Прибытие» или «Убытие»
- Действия: «Задать циферблат»
Вариантов для использования данной автоматизации предостаточно. К примеру, если вы регулярно посещаете спортзал и используете для контроля своей активности внутри него определенный циферблат Apple Watch, есть смысл устанавливать его автоматически.
Да, если используете для этого действий триггер «Прибытие», то логично будет также отменить его с помощью «Убытия». Это поможет вернуть стандартный циферблат на экран Apple Watch, когда выходите из спортивного зала.
4. Автоматическое включение режима энергосбережения

- Триггеры: «Уровень заряда»
- Действия: «Вкл./выкл. режим энергосбережения»
Когда уровень заряда вашего iPhone достигает 20%, он впервые предлагает вам активировать режим энергосбережения. Это действие нужно подтвердить вручную: тогда мобильное устройство ограничит свою активность, чтобы растянуть остаток своей автономности.
Тем не менее, вы также можете делать это автоматически при любом уровне заряда. Для этого достаточно лишь настроить соответствующую команду. Кстати, обратную делать не придется: гаджет отключить режим после «дозаправки».
5. Режим максимальной экономии энергии

- Триггеры: «Энергосбережение»
- Действия: «Вкл./выкл. Wi-Fi», «Вкл./выкл. сотовые данные», «Вкл./выкл. Bluetooth»
Режим «Энергосбережение» доступен только на iPhone. Он обрезает фоновую активность гаджета, чтобы при минимальной уровне заряда он проработал как можно дольше. Тем не менее, уровень ограничений также получится расширить, чтобы повысить эффективность затеи.
У вас, к примеру, есть возможность отключить Wi-Fi, сотовые данные, Bluetooth. Без них гаджет определенно сможет проработать дольше. Тем не менее, вы сохраните возможность принимать голосовые вызовы и звонить.
6. Голосовое оповещение после начала зарядки

Действие «Произнести» предполагает введение фразы, которая будет проговариваться после заданного события — например, подключения зарядки. Подойдут слова «Начало зарядки» или нечто подобное. Тут уж, на что у вас фантазии в итоге хватит.
Для чего это нужно? Чтобы убедиться, что зарядка началась. Это особенно важно, если вы используете не самый качественный кабель, который не всегда корректно работает. Да, это также полезно вместе с беспроводной зарядкой: получится убедиться, что правильно положили гаджет на станцию.
7. Оповещение про конкретный уровень заряда

Аккумулятор iPhone не любит крайностей. Если регулярно заряжать его до 100%, а потом разряжать в ноль, его эффективная емкость существенно сократится уже через год–два интенсивного использования. Но как проконтролировать этот процесс?
Для этого можно использовать очередную автоматизацию. К примеру, можно научить iPhone уведомлять вас о том, что он заряжен до безопасных 80%, голосом. Это даст возможность вовремя отключить гаджет от сети в тот самый момент.
8. Запуск будильника на колонках через AirPlay

- Триггеры: «Время суток»
- Действия: «Задать место воспроизведения» и «Воспроизвести музыку»
С помощью автоматизаций в «Быстрых командах» вы, в том числе, можете настроить любопытный кастомный будильник с любым необходимым повторением. Можно выбрать возможность подключения iPhone к активной колонке через AirPlay, а потом запустить там музыку.
Единственное, может понадобиться заложить небольшую временную паузу на момент подключения. Тем не менее, здесь я не стану углубляться в данный момент. Думаю, у вас не будет проблем с экспериментами в данном направлении.
9. Активация «Не беспокоить» во время прогулок в парке

- Триггеры: «Прибытие» или «Убытие»
- Действия: «Вкл./выкл. режим «Не беспокоить»
Не так давно в разговоре со своим соседом выяснил, что он практикует часы цифрового детокса: два или три раза в неделю. В это время он идет пешком в парк, устанавливает на iPhone режим «Не беспокоить» и вообще не берет в руки какие-либо гаджеты определенное время.
Говорит, что таким образом может в полной мере погрузится в свои мысли, чтобы проработать в голове какие-то новые идеи и, возможно, подготовить почву к их реализации в жизнь. Да, я помог ему настроить автоматизацию для данной задачи.
10. Включение режима «Не беспокоить» в своем автомобиле

- Триггеры: Wi-Fi
- Действия: «Вкл./выкл. режим «Не беспокоить»
В iOS и без того есть режим «Не беспокоить водителя». Он автоматически определяет, что вы сели в автомобиль и активирует соответствующую возможность, чтобы вы не отвлекались от дороги. Тем не менее, я доволен им не в полной мере.
Дело в том, что он у меня часто включается, когда я наждусь не в своем авто. Именно поэтому я настроил активацию «Не беспокоить» при подключении к Wi-Fi, который для связи с собой раздает мой видеорегистратор на лобовом стекле. Оказалось удобно.
11. Увеличить текст на экране в своем автомобиле

Кстати, при подключении к Wi-Fi видеорегистратора сам я так же использую увеличение текста на экране iPhone. Гаджет всегда находится на магнитном креплении в центральной части торпеды, и с не самым лучшим зрением издали становится комфортнее.
Единственное, с отменой данной автоматизации пока не решил как быть. В «Быстрых командах» нет триггера на отключение от Wi-Fi, поэтому пока что приходится пользоваться ручным переключателем, который расположен в «Пункте управления».
12. Запустить музыку после старта тренировки на часах

- Триггеры: «Тренировка с Apple Watch»
- Действия: «Задать место воспроизведения» и «Воспроизвести музыку»
Еще один интересный сценарий использования автоматизаций, который предполагает старт воспроизведения музыки в наушниках после запуска любой тренировки на Apple Watch. Для этого лишь нужно, чтобы они были активны и подключены к iPhone.
В данном случае, вероятно, так же придется добавлять задержку между первой и второй командой. Это зависит от того, насколько быстро может произойти соединение iPhone и наушников, которые вы используете.
13. Запуск приложений под голосовое сопровождение

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

Можно создать автоматизацию для активации возможности понижения точки белого в темное время суток. Вместе с ночным режимом это должно крайне положительно сказаться на вопросе напряжения зрительной системы. Глаза скажут спасибо.
Можно включать понижение точки белого после заката и выключать после восхода. Лично мне использование данной функции кажется максимально удобным, практичным и в принципе оправданным. Рекомендую попробовать.
15. Приветственное оповещение дома и в офисе

В конце концов, вы можете настроить приветственное сообщение, которое будет произносится после подключения к конкретному Wi-Fi. К примеру, когда iPhone коннектится к домашнему, он может говорить «Добро пожаловать домой!».
Таким же образом можно контролировать, к какой именно сети Wi-Fi решил подключиться iPhone. К примеру, в моем офисе три разных сети, которые отличаются по скорости и безопасности. Хорошо бы знать, какая используется в данный момент.
? Прокачивай айфон не только командами, но и красивыми чехлами:

▪️ Слева пластиковый Guess — 2 990 руб.
▪️ В центре кевларовый Pitaka — 5 990 руб.
▪️ Справа силиконовый Apple — 4 990 руб.
(24 голосов, общий рейтинг: 4.67 из 5)
Хочешь больше? Подпишись на наш Telegram.

Источник: www.iphones.ru
Как создать задание в Планировщике задач?

Вы хотите, чтобы ваш компьютер засыпал или выключался в определенное время каждый день? Или, может быть, вы хотите, чтобы ваш компьютер начал воспроизводить мотивационное видео каждый раз, когда вы его запускаете или когда наступает полдень?
Если вы хотели бы запрограммировать свой компьютер на определенные действия в определенное время, вы должны прочитать эту статью, поскольку мы рассмотрим некоторые дополнительные функции планировщика заданий: создание расширенных задач, настройка их триггеров, действий и параметров безопасности. Он является мощным инструментом, когда вы хотите контролировать свою систему и задачи, которые она выполняет. Поэтому будьте готовы к широкому выбору вариантов, которые позволят вам установить все возможные детали, связанные с запланированными задачами. Давайте начнем.
ПРИМЕЧАНИЕ. Это руководство относится к Windows 10, Windows 7 и Windows 8.1. Чтобы проиллюстрировать то, что вы можете сделать с планировщиком заданий, мы собираемся создать расширенную задачу, которая выключает компьютер каждый день в 11:00.
Как создать расширенную задачу в Windows
Начните с открытия Планировщика заданий. Быстрый способ открыть планировщик заданий в любой версии Windows — использовать поиск: поиск «планировщик задач» и щелчок или поиск соответствующего результата поиска.

Теперь давайте перейдем к делу: чтобы создать новую задачу, в окне «Планировщик заданий» перейдите на панель «Действия», а с правой стороны щелкните или нажмите «Создать задачу».

Запустившийся мастер позволяет настроить каждую деталь новой задачи, начиная с ее имени и продолжая установкой одного или нескольких триггеров, действий, создания условий для запуска задачи и т.д.

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

На вкладке «Общие» также можно настроить дополнительные «параметры безопасности», относящиеся к учетной записи пользователя и привилегии, используемые для запуска создаваемой задачи. По умолчанию учетная запись пользователя, используемая для запуска задачи, является той, которую вы используете для создания задачи. Если вы хотите использовать другую учетную запись пользователя при выполнении задачи, нажмите или коснитесь кнопки «Изменить пользователя или группу» и выберите другую.

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

Если для вашей задачи требуются права администратора, не забудьте установить флажок «Запустить с наивысшими привилегиями». Затем проверьте параметр «Скрытый», если вы не хотите, чтобы задача была видимой. Это означает, что вошедший в систему пользователь не уведомляется о запуске или завершении задачи. Мы не собираемся это делать, потому что мы хотим, чтобы пользователь смог остановить процедуру выключения, если он или она хочет использовать ПК в ночное время.

Это все, что касается общих настроек. Перейдем на вкладку «Триггеры».
Как установить триггеры задачи в планировщике заданий
Вкладка «Триггеры» позволяет вам установить несколько триггеров. Чтобы добавить новый триггер, нажмите или коснитесь кнопки «Создать» в нижней части окна.

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

Для нашей задачи выключения мы должны выбрать «По расписанию» и установить задачу для ежедневной работы в 11 часов.

Есть несколько дополнительных триггеров по сравнению с мастером Создания базовых задач, например: «При создании/изменении задачи», «При подключении к пользовательскому сеансу», «При отключении от пользовательского сеанса», «При блокировке рабочей станции» и «При подключении к пользовательскому сеансу», «При разблокировке рабочей станции». На основе выбранного вами варианта вам необходимо задать разные настройки на панели «Настройки», но доступные дополнительные параметры остаются теми же, независимо от того, какой триггер вы выберете.
Для триггеров с именем «On connection to user session» и «On disconnect from user session» вы можете сделать следующие настройки:

- Установите, если « соединение с сеансом пользователя» относится к любому пользователю или конкретному пользователю. Для последнего по умолчанию используется текущий пользователь. Однако вы можете щелкнуть или нажать «Изменить пользователя» и выбрать другого пользователя.
- Установите, если соединение относится к соединению с удаленного или локального компьютера.
Для триггеров «On workstation lock» и «On workstation unlock» вам нужно только установить, относится ли это к любому пользователю или конкретному пользователю. По умолчанию конкретный пользователь является текущим. Вы можете щелкнуть или нажать «Изменить пользователя», чтобы выбрать другую учетную запись пользователя.

Как установить дополнительные параметры для триггеров задачи
Доступные расширенные настройки одинаковы для всех триггеров. Для каждого доступного параметра вы должны сначала проверить соответствующее поле, чтобы просмотреть список аналогичных вариантов. Вы можете выполнить следующие настройки:
- Задержка задания на определенное время: 30 секунд, 1 минута, 15 минут, 30 минут, 1 час, 8 часов или 1 день;
- Выберите временной интервал, после которого задание повторяется (5, 10, 15, 30 минут или 1 час) и продолжительность повтора (15 или 30 минут, 1 или 12 часов, 1 день или неопределенно);
- Если ваша задача по какой-то причине может работать дольше указанного вами периода, вы можете автоматически остановить ее;
- Вы можете установить дату и время активации и истечения срока действия. Это означает, что даты, между которыми будет выполняться ваша задача, когда задан триггер;
- Вы можете включить или отключить задачу.
Для ежедневной задачи остановки ПК, которую мы создаем, нам не нужны какие-либо из этих дополнительных настроек: все, что нам нужно сделать, это убедиться, что задача включена.

Нажмите или коснитесь OK, когда закончите с настройками этого триггера. Новый триггер отображается в списке триггеров. Вы можете либо создать новый, либо выбрать уже созданный триггер, чтобы отредактировать его или удалить.

Как установить действия задачи в Планировщике задач
Вы можете назначить несколько действий для задачи. Для этого перейдите на вкладку «Действия» и нажмите кнопку «Создать» или нажмите кнопку «Создать».

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

Если вы решите запустить программу, нажмите или коснитесь кнопки «Обзор», чтобы выбрать приложение для запуска. Затем, при необходимости, заполните необязательные поля «Аргументы» и «Начать в» .
Для нашей задачи выключения мы должны выбрать «Запустить программу». Затем мы должны ввести команду shutdown в поле Program/script. Чтобы эта команда работала, мы также должны вводить правильные аргументы, поэтому в разделе «Добавить аргументы» мы будем вводить -s и -f. Аргумент -s указывает компьютеру, что мы хотим, чтобы он закрылся, а не перезагрузился или заснул, а аргумент -f сообщает, что мы хотим заставить приложения закрыться при завершении работы.

ПРИМЕЧАНИЕ. Если вы хотите не запускать программу, а отправлять электронную почту, вам необходимо заполнить поля From и To, задать тему, написать текст электронной почты, добавить вложения и указать SMTP-сервер (найденный в свойствах вашей учетной записи электронной почты). Для отображения сообщения необходимо указать заголовок и сообщение. Помните, что в Windows 10 и 8.1 задачи «Отправить электронное письмо» и «Показать сообщение» устарели — это означает, что эти действия не могут быть выполнены в этих версиях Windows.
Как мы уже упоминали ранее, вы можете создать несколько действий для задачи. Например, вы можете создать задачу, которая запускает очистку диска, и только затем выключает компьютер. Вы можете изменить порядок действий, нажав или нажав кнопки, найденные в правой части списка действий.

Чтобы изменить действие, выберите его и нажмите или коснитесь «Редактировать» . Чтобы удалить его, нажмите или коснитесь «Удалить».

Как настроить условия задачи в планировщике заданий
Помимо триггера вы можете указать несколько условий для запуска задачи в зависимости от простоя, прошедшего, будь то компьютер с питанием от сети переменного тока или определенная сеть. Чтобы установить их, нажмите или коснитесь вкладки « Условия ». Обратите внимание: если вы хотите создать задачу выключения, как и мы, вам не нужно настраивать какие-либо из этих условий.

Если вы хотите, чтобы задача не мешала вашей работе, вы можете настроить ее на запуск только тогда, когда компьютер находится в режиме ожидания. Установите флажок «Запустить задачу только в том случае, если компьютер простаивает» и выберите один из доступных периодов.
С того момента, как вы запустили задачу, вы можете подождать, пока компьютер перейдет в состояние ожидания на определенный период или вы можете выбрать «Не дожидаться простоя». Когда компьютер больше не находится в состоянии ожидания, вы можете остановить работу или перезапустить его, если возобновление состояния ожидания. В качестве возможного сценария использования эти параметры простоя полезны, когда вы знаете, что для выполнения вашей задачи может потребоваться много системных ресурсов для запуска. Установка их на запуск, когда ваш компьютер или устройство находится в режиме ожидания, означает, что вы не будете беспокоиться о том, что программы работают медленно из-за этой задачи, которая поглощает большинство ресурсов вашего компьютера.

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

Если вам известно, что для выполнения задачи требуется определенное сетевое соединение, установите флажок «Начать, только если доступно следующее сетевое подключение», и выберите интересующее вас соединение.

Как установить поведение сбоя задачи
Планировщик заданий позволяет вам делать настройки, которые будут полезны в особых сценариях, таких как сбой задачи или когда выполняемая задача не заканчивается по запросу. Перейдите на вкладку «Настройки» мастера создания задачи.

Вы можете выполнить следующие настройки:
- Разрешить выполнение задачи по требованию. В противном случае он запускается только при выполнении триггеров и условий.
- Если задача основана на расписании, которое пропущено, вы можете установить задачу как можно скорее.
В случае сбоя задачи вы можете настроить его на перезапуск каждые 1, 5, 10, 15, 30 минут или 1-2 часа. Можно попробовать перезагрузить время, которое вы установили. - Если вы считаете, что что-то пошло не так с вашей задачей, и оно длится более 1, 2, 4, 8, 12 часов или 1-2 дня, вы можете остановить его.
- Если задача не будет запущена снова, вы можете настроить автоматическое удаление компьютера после 30, 90, 180, 365 дней или сразу.
- Если задача уже запущена и придет время для ее повторного запуска, вы можете выбрать один из следующих вариантов: «Не запускать новый экземпляр» (первый экземпляр задачи продолжает выполняться), «Запустить новый экземпляр (первый экземпляр задачи продолжает выполняться, а также запускается новый экземпляр задачи), «Очередь нового экземпляра» (экземпляр новых задач запускается после завершения первого экземпляра задачи) и «Остановить существующий экземпляр» ( первый экземпляр задачи останавливается, и запускается новый экземпляр задачи).
Когда вы установили все по своему усмотрению, нажмите кнопку OK , и задача будет мгновенно создана, и вы сможете найти ее в любое время в библиотеке планировщика заданий.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Источник: ip-calculator.ru