Содержание

Как получить IP-адрес в Python > Путь разработчика

Важные характеристики объектов Python

Все объекты Python имеют уникальный идентификатор. Встроенная функция id() возвращает идентификатор объекта как целое. Это целое число обычно соответствует…

25 02 2021 2:13:49

Есть ли способ убить поток в Python?

В Python вы просто не можете убить Thread. Убийство нити устраняет любые гарантии, которые пытаются установить / окончательно блокировать, чтобы вы могли з…

24 02 2021 17:12:45

Нарисуйте ковер Sierpinski в C#

В этом примере показано, как нарисовать ковер Sierpinski, тип фрактала, известный как прокладка. Должности Нарисуйте прокладку Серпинского в C# и…

23 02 2021 4:50:31

Метод Substring в C#

Метод Substring в строке C#. Класс возвращает новую строку, которая является подстрокой этой строки. Подстрока начинается с указанного заданного индекса и. ..

22 02 2021 18:44:55

Самые популярные и востребованные языки программирования в 2018 году

Какие самые популярные и востребованные языки программирования в 2018 году? Программирование является одной из самых перспективных сфер деятельности в наше время. Человечество все больше погружается…

21 02 2021 18:19:37

В чем смысл System.out.println в Java?

System.out.println — это оператор Java, который печатает переданный аргумент, в System.out, который обычно является stdout. System — класс out — это переме…

20 02 2021 14:17:41

Проверка, нет ли строки в C#

В этом примере используются три строки для сравнения разных методов для определения, является ли строка пустой. Один из методов: метод string класса IsNull…

19 02 2021 12:57:31

Создание, чтение и запись текстового файла в C#

В этой статье мы напишем программу в C# для создания, чтения и записи текстового файла. Обычно есть два режима доступа к файлам: текстовый и двоичный. В те…

18 02 2021 4:43:15

График исторических значений Dow Jones Industrial Average в C#

Эта программа отображает исторические цены на индекс Dow Jones Industrial Average. Я получил данные с этого URL: Поля в URL: Результаты приведены в примере…

17 02 2021 15:14:55

Создайте библиотеку кнопок XAML в C#

В этом примере показано, как можно создать библиотеку кнопок XAML с возможностью повторного использования в WPF. Пример Создание шаблона кнопки WPF в C# ис…

16 02 2021 10:28:49

Как освоить профессию программиста: основные ошибки

Как освоить профессию программиста? Какие основные ошибки? Можно бесконечно перечитывать одни и те же статьи без особой пользы. Но гораздо лучше усваивать информацию небольшими частями, сразу…

15 02 2021 10:50:31

PHP 5 для чайников (Джанет Валейд)

Данная книга является введением в область Web-программирования на языке Р Н Р 5. С ее помощью можно быстро написать сценарий для Web, обеспечить взаимодейств…

14 02 2021 0:23:34

Введение в потоки Thread в Java

В чем разница между Reader и InputStream в Java Процесс представляет собой экземпляр выполняемой компьютерной программы. Процесс может выполняться процессо…

13 02 2021 5:57:25

Разница между Java и JavaScript?

Хотя оба имеют похожие имена, оба являются двумя совершенно разными языками программирования. Java — это полнофункциональный, универсальный, язык программи…

12 02 2021 8:56:18

Является ли JavaScript истинным языком ООП?

В объектно-ориентированном программировании есть три основные особенности: инкапсуляция, наследование и полиморфизм. Инкапсуляция: инкапсуляция относится к…

11 02 2021 9:59:11

В чем смысл System.out.println в Java?

System.out.println — это оператор Java, который печатает переданный аргумент, в System. out, который обычно является stdout. System — класс out — это переме…

10 02 2021 19:25:53

Qt 5.3. Профессиональное программирование на C++ (Шлее М.)

  Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предостав…

09 02 2021 1:41:35

Сортировка и поиск массивов в C#

Класс Array предоставляет несколько полезных методов работы с массивами. Два из них позволяют сортировать и искать массивы. В следующем коде показано, как…

08 02 2021 0:52:36

Найти имя компьютера — Python

Существует несколько способов найти имя компьютера на Python. Модуль «socket» в Python обеспечивает доступ к интерфейсу сокетов BSD . Он доступен для всех…

07 02 2021 7:29:42

Delphi в примерах, играх и программах (Валерий Рубанцев)

В январе 2011 года в питерском издательстве Наука и техника вышла книга Валерия Рубанцева «Delphi в примерах, играх и программах». К сожалению, в ней не на…

06 02 2021 0:40:36

Рихтер Дж. CLR via C#: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#

Эта книга, выходящая в четвертом издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирова…

05 02 2021 16:51:15

Циклы в Bash (for, while, until, break, continue, select)

В этом разделе нашего учебного пособия по Bash мы рассмотрим различные форматы циклов for, while, until, доступные нам, а также break, continue, select…

04 02 2021 15:26:43

Нарисуйте водяной знак в C#

Пример Использование ColorMatrix для добавления водяного знака к изображению на C# показывает один способ добавления водяного знака к изображению. В этом п…

03 02 2021 21:26:28

Является ли JavaScript функциональным языком программирования?

Функциональное программирование вращается вокруг идеи о том, что программа состоит из набора функций, и они следуют определенным правилам. Это парадигма пр…

02 02 2021 5:50:49

Позвольте пользователю увеличить изображение на C#

Пример Предоставление автосохранения в C# объясняет, как сделать программу, которая позволяет пользователь рисует линии в разных цветах и стилях. Эта прогр…

01 02 2021 14:12:16

Заполните эллипс случайными строками в C#

Как следует из названия, этот пример рисует эллипс, заполненный случайными строками. Однако он не может просто нарисовать эллипс в обработчике событий Pain…

31 01 2021 6:37:39

Стабильные встречи в C#

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

30 01 2021 16:57:29

Программа, которая отображает собственный двоичный код тремя способами в C#

Недавно я хотел поставить кусок двоичного кода в книгу, чтобы показать, какой код действительно выглядит на компьютере, поэтому я написал эту программу. Эт…

29 01 2021 15:29:50

Инициализировать массив массивов в C#

Пример Инициализация двумерных массивов в C# объясняет как инициализировать двумерный массив. Массив массивов несколько похож на двумерный массив, но с нек…

28 01 2021 0:19:57

Разница между substr() и substring() в JavaScript

Строка JavaScript представляет собой объект, который представляет последовательность символов. Метод substr() извлекает части строки, начиная с символа в у…

27 01 2021 18:58:10

Почему класс Java не может быть объявлен как статический?

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

26 01 2021 17:14:48

Класс OutPutStreamWriter в Java

OutPutStreamWriter записывает символы в выходной поток, переводя символы в байты в соответствии с указанной кодировкой символов. Каждый OutputStreamWriter…

25 01 2021 3:45:10

Чтение и запись объектов в Java

Сериализация — это преобразование объекта в последовательность байтов, чтобы объект можно было легко сохранить в постоянном хранилище или потоковом потоке…

24 01 2021 14:53:16

Список всех файлов в папке в Java

Как читать все .txt-файлы в папке Подсчет количества файлов в каталоге с помощью Java Источник: http://net-informations.com/Java/files/folder.htm…

23 01 2021 2:16:26

Сравните скорости LINQ для разных подходов в C#

В этом примере сравниваются скорости LINQ при использовании LINQ различными способами. Чтобы найти минимальные и максимальные значения X в List & lt; Point…

22 01 2021 12:32:46

Path (путь) в C#

В этой статье мы обсудим директиву Path и различные методы в Path в C#. Путь — это строка, которая предоставляет расположение файла или каталога.   Путь не о…

21 01 2021 10:13:56

Самоучитель С#. Начала программирования (Элеонора Ишкова)

Данная книга является превосходным и эффективным учебным пособием для изучения языка программирования С# с нуля. Правила и приемы С# иллюстрируются програм…

20 01 2021 9:26:25

1С-программирование как дважды два. Самоучитель (Михайлов Сергей)

Книга «1 С-программирование как дважды два. Самоучитель» основана на личном опыте предпринимательской деятельности автора в сфере 1 С-программирования. Начин…

19 01 2021 5:59:13

Как подсчитать пиксели разных цветов в C#

Следующий CountPixels метод подсчитывает пиксели в изображении, который соответствует целевому цвету. Этот код достаточно прост. Он пропускает пиксели, выз…

18 01 2021 10:58:33

Что такое анонимная функция в JavaScript?

Два наиболее распространенных способа создания функции в Javascript — это использование объявления функции или оператора функции. Анонимные функции создают…

17 01 2021 6:52:33

Используйте объект ImageAttributes для применения общих цветовых тонов к изображению в C#

В этом примере используются методы, аналогичные тем, которые описаны в post Используйте объект ImageAttributes для преобразования изображения в оттенки кра…

16 01 2021 8:27:20

Получить использование памяти программы в C#

Код получает объект Process программы, а затем использует его свойства, чтобы узнать об использовании памяти. Источник: http://csharphelper.com/blog/2015/1…

15 01 2021 15:29:57

Получите размер файла и время последней модификации на FTP-сервере в C#

Метод FtpGetFileSize, показанный в следующем коде, получает размер файла в байтах. Параметр uri предоставляет полный путь к файлу, как в ftp://www.somewher…

14 01 2021 0:54:45

JavaScript. Подробное руководство (Дэвид Флэнаган)

Пятое издание бестселлера «Javascript. Подробное руководство» полностью обновлено. Рассматриваются взаимодействие с протоколом HTTP и применение технологии…

13 01 2021 11:27:29

Сделайте программу калейдоскопа в C#

Когда вы нажимаете и рисуете форму этой программы, код рисует другие кривые, связанные с вашим, для создания эффекта калейдоскопа. Например, он может нарис…

12 01 2021 6:40:52

Рисуем гладкий текст в GraphicsPath в C#

Вы можете установить свойство TextRenderingHint объекта Graphics для AntiAliasGridFit, чтобы нарисовать гладкий текст. Однако, если вы поместите текст в об…

11 01 2021 13:10:30

Массивы в JavaScript

Массив — это структура данных, состоящая из набора элементов, каждый из которых идентифицируется по меньшей мере одним индексом или ключом массива. Он испо…

10 01 2021 20:10:24

Операции Java ArrayList

Программирование Java для начинающих. .. ArrayList — одна из самых гибких структур данных из коллекций Java. Arraylist — это класс, который реализует интерф…

09 01 2021 21:34:57

Перемещение окна с названием, которое соответствует шаблону в C#

Пример Установите размер и положение другого приложения в C# использует функцию API FindWindow, чтобы найти окно с данным заголовком. К сожалению, FindWind…

08 01 2021 18:48:10

Что на самом деле вызывает ошибку StackOverflow в Java?

StackOverflowError просто сигнализирует о том, что памяти больше нет. Он расширяет класс VirtualMachineError, что указывает на то, что JVM (виртуальная маш…

07 01 2021 16:22:22

Является ли Python скомпилированным или интерпретированным?

Скомпилированные языки записываются в код, который может быть выполнен непосредственно на процессоре компьютера. Компилятор — это специальная программа, ко…

06 01 2021 9:34:52

Преобразование между длинными и короткими именами файлов в C#

Вы можете использовать функцию API GetShortPathName для преобразования от длинного к коротким именам файлов. Следующий код объявляет функцию API. Следующий…

05 01 2021 8:36:16

Сделать свойство индексатора по умолчанию для класса в C#

Классы, такие как Dictionary и List предоставляют свойство индексатора по умолчанию, которое позволяет вам получать доступ к значениям, используя синтаксис…

04 01 2021 11:55:27

Что такое docstring в Python?

Строки документации Python (или docstrings) обеспечивают удобный способ связывания документации с модулями, функциями, классами и методами Python. Как вы м…

03 01 2021 21:32:23

Как разделить строку в C#

В этой статье мы узнаем, как разделить строку на C#. C# Split () обрабатывает разделение на заданные строковые и символьные разделители.  Он возвращает масс…

02 01 2021 10:35:19

1С:Предприятие 8.0. Управление торговлей (В.Григорьева)

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

01 01 2021 7:38:58

Как заменить все вхождения строки в JavaScript?

Метод replace() в JavaScript ищет строку для указанного значения или регулярное выражение и возвращает новую строку, где указанные значения заменяются. Но…

31 12 2020 8:31:54

Вероятности событий графа в C#

Пример Вычислить вероятность события, происходящего в данном количестве испытаний в C# , показывает, как вычислять вероятности событий. Этот пример отображ…

30 12 2020 20:57:51

Воспроизведение аудио файлов в C#

Класс System.Media.SoundPlayer позволяет вам легко воспроизводить WAV-файл, сохраненный как аудио-ресурс. В этом примере сначала добавьте WAV-файл в качест…

29 12 2020 0:35:34

Разница между HashMap и Hashtable в Java?

Оба HashTable и HashMap реализуют интерфейс карты, но между ними существуют некоторые различия. Они есть: Безопасность потоков (синхронизировано) Нулевые к…

28 12 2020 16:42:15

Обработать ошибки DataGridView в C#

В этом примере показано, как вы можете обрабатывать ошибки DataGridView при изменении данных в элементе управления DataGridView. Пример Создание DataTable…

27 12 2020 2:16:20

Создайте библиотеку кнопок XAML в C#

В этом примере показано, как можно создать библиотеку кнопок XAML с возможностью повторного использования в WPF. Пример Создание шаблона кнопки WPF в C# ис…

26 12 2020 11:29:37

Перечислите уникальные слова в файле Microsoft Word в C#

Пример Список уникальных слов в тексте файл в C# показывает, как перечислить уникальные слова в текстовом файле. В этом примере показано, как перечислять у…

25 12 2020 9:42:37

PHP: обучение на примерах (А. Кухарчик)

Книга предназначена прежде всего для начинающих, но может быть полезна и опытным программистам, использующим Р Н Р. Просто и доступно изложены основы Р Н Р — п…

24 12 2020 13:11:50

Список поставщиков OLE DB, установленных в системе на C#

В этом примере показано, как вы можете указать поставщиков OLE DB, установленных в системе. ( Недавно мне пришлось запускать более старую программу в новой…

23 12 2020 9:35:38

Существует ли файл или каталог в Python

Os.path.isfile (путь) Возвращает True , если путь существующий обычный файл. Пример: Если файл «my_file.txt» существует в текущем пути, он вернет true else…

22 12 2020 6:59:34

Сравнение скорости арифметических операций в C#

В этом примере сравниваются скорости арифметических операций с разными типами данных. Существует большая разница между скоростями операций с использованием…

21 12 2020 15:52:18

Треугольная матрица в C#

В этой статье мы напишем программу C#, чтобы проиллюстрировать нижнюю треугольную матрицу. Что такое нижняя треугольная матрица? Квадратная матрица называе…

20 12 2020 7:17:52

Разница между capacity() и size() вектора в Java

Разница между capacity() и size() в Java.util.Vector заключается в том, что size() — это количество элементов, которые в настоящее время удерживаются, а ca…

19 12 2020 2:26:43

Разница между операторами «=», «==» и «===»?

«=» — оператор присваивания. Оператор присваивания присваивает значение своему левому операнду на основе значения его правого операнда. Первым операндом до…

18 12 2020 21:48:39

Самый первый язык программирования

Какой самый первый язык программирования? Очень многих людей, заинтересованных в компьютерной тематике, волнует один увлекательный вопрос – какой самый первый язык программирования и кем он создан?…

17 12 2020 15:36:37

Увеличьте и прокрутите изображение, нарисованное на C#

Эта программа позволяет масштабировать и прокручивать изображение, нарисованное программой. Программа содержит Panel с AutoScale, установленным в true. Вну…

16 12 2020 18:44:11

Выполнять операции набора в C#

Класс HashSet может представлять объекты в наборе и выполнять операции с множеством, такие как поиск объединения или пересечения двух множеств. Когда прогр…

15 12 2020 2:54:38

В чем разница между файлами .py и .pyc?

Python компилирует .py файлы и сохраняет его как .pyc-файлы, поэтому он может ссылаться на них при последующих вызовах. Файл .pyc содержит скомпилированный…

14 12 2020 21:46:17

Каковы различия между ArrayList и Vector в Java?

Java ArrayList и Vector реализуют интерфейс List и поддерживают порядок вставки. Но между ArrayList и Vector есть некоторые отличия. Java ArrayList и Vecto…

13 12 2020 20:15:47

Чтение и запись текста в текстовых файлах в C#

Когда вы нажимаете кнопку «Write» кнопки примера, следующий код записывает значения в текстовые поля в файл. Этот код создает новый StreamWriter для записи…

12 12 2020 3:41:41

Инициализация ComboBox из перечисления в C#

Часто полезно инициализировать ComboBox из перечисления, чтобы пользователь мог выбрать одно из значений перечисления. Вы можете ввести значение в ComboBox…

11 12 2020 6:33:23

Получаем размер шрифта в пикселях в C#

Одна странность класса Font заключается в том, что его свойство « Размер» возвращает размер шрифта в единицах, которые использовались для создания шрифта. С…

10 12 2020 8:54:44

Операторы сравнения! = Не равны в Python

Вы можете использовать! = И не для не равной операции в Python. Пример Пример Источник: http://net-informations.com/python/iq/not.htm…

09 12 2020 20:22:17

События флеш-кликов в C#

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

08 12 2020 7:19:54

Программирование Java для начинающих

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

07 12 2020 17:52:39

Среда разработки NetBeans

NetBeans – бесплатно распространяемая среда разработки для языков C, C++, Java, PHP, Javascript, Python и прочих. Этот проект разрабатывается независимой г…

06 12 2020 11:19:53

PHP 5 для начинающих (Дэйв У. Мерсер, Аллан Кент, Стивен Д. Новицки)

Эта книга представляет собой подробное учебное пособие для желающих освоить современную версию PHP. В книге описывается установка и конфигурирование PHP, о…

05 12 2020 19:31:24

Как реализовать наследование в Python?

Класс может наследовать атрибуты и методы поведения из другого класса, называемого суперклассом. Класс, который наследуется от суперкласса, называется подк…

04 12 2020 8:11:26

Запустите приложение DOS и запишите его вывод в C#

Этот код создает объект ProcessStartInfo для хранения информации о процессе, который он должен запустить. Затем он создает объект Process, устанавливает ег…

03 12 2020 0:57:34

Delphi 6. Учебный курс (В. В. Фаронов)

В книге «Delphi 6. Учебный курс» даются начальные сведения по системе программирования Delphi, разработанной американской корпорацией Borland International…

02 12 2020 18:59:46

Сохранение изображений в базе данных Access в WPF и C#

Пример Отображение изображений в Доступ к базе данных в WPF и C# показывает, как вы можете отображать изображения, сохраненные в базе данных Access. Конечн…

01 12 2020 17:26:25

Посмотрите, какие процессы заблокированы в C#

В старых версиях Windows было невозможно определить, какие процессы заблокировали файл. Система отслеживала количество блокировок в файле, и процессы отвеч…

30 11 2020 2:14:42

Программирование на С++ глазами хакера, 2-е издание (Михаил Фленов)

Рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточн…

29 11 2020 17:46:12

Разница между @staticmethod и @classmethod в Python

Python @classmethod означает, что при вызове этого метода мы передаем класс как первый аргумент вместо экземпляра этого класса («self»). Функция @classmeth…

28 11 2020 11:46:28

Класс FileReader в Java

FileReader — это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв…

27 11 2020 0:59:56

Нарисуйте линии с пользовательскими тире в C#

Чтобы создать строки с пользовательскими тире, сначала создайте объект Pen и установите его свойство DashStyle в Custom. Затем установите его свойство Dash…

26 11 2020 20:25:11

Язык программирования С++ (Б. Страуструп)

Книга Б. Страуструпа » Язык программирования С++» дает описание языка, его ключевых понятий и основных приемов программирования на нем. Это завершенное руко…

25 11 2020 14:12:53

Сохранение и восстановление изображений, сделанных пользователем в C#

Оказывается, это замечательно легко. Следующий код показывает, как программа сохраняет объекты Polyline, хранящиеся в списке Polylines. В коде отображается…

24 11 2020 16:43:47

Как вычислить вероятность события, происходящего в данном количестве испытаний в C#

Сообщение Понять вероятности несвязанных событий (и избежать зомби) объясняет, как рассчитать вероятность события, происходящего в определенном количестве…

23 11 2020 17:36:27

Изучаем HTML, XHTML и CSS (Эрик Фримен, Элизабет Робсон)

Устали от чтения книг по HTML, которые понятны только специалистам в этой области? Тогда самое время взять в руки новое издание » Изучаем HTML, XHTML и CSS.

22 11 2020 4:20:28

Выделение эллипса в программе WPF с использованием C#

В этом примере показано, как вы можете визуализировать эллипс в программе WPF. Обычно для рисования фигур в WPF вы используете какой-то объект. Вы можете д…

21 11 2020 18:41:14

Актуальные языки программирования

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

20 11 2020 20:24:39

Используйте оператор is в C#

Оператор is позволяет определить, можно ли преобразовать объект в определенный тип. Например, предположим, что класс Student наследуется от Person и что st…

19 11 2020 16:22:47

Простой Python. Современный стиль программирования. (Билл Любанович)

Эта книга идеально подходит как для начинающих программистов, так и для тех, кто только собирается осваивать Python, но уже имеет опыт программирования на. ..

18 11 2020 5:31:50

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае…

17 11 2020 10:49:24

Разница между локальной переменной Java, переменной экземпляра и переменной класса?

Локальная переменная в Java обычно используется в методе, конструкторе или блоке и имеет только локальную область. Таким образом, вы можете использовать пе…

16 11 2020 12:50:34

Обновление DataTable, привязанное к DataGridView в C#

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

15 11 2020 9:58:49

Почему Java не поддерживает указатели?

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

14 11 2020 12:42:30

Использование метода File.Replace для резервного копирования файлов на C#

В этом примере показано, как использовать метод File.Replace для создания двухуровневой системы резервного копирования журнала. Пример Сделать файл журнала…

13 11 2020 22:44:27

Программирование на Java

Сокет — одна из самых фундаментальных технологий программирования компьютерной сети. Это способ подключения двух узлов в сети для связи друг с другом. Прог…

12 11 2020 5:14:46

Программирование Java для начинающих

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

11 11 2020 9:47:13

Изучаем C++ через программирование игр

Если вы хотите научиться программировать первоклассные игры, вам просrо необходимо изучить язык С++. Эrа книга поможет вам освоить разработку игр с самых а…

10 11 2020 1:57:33

Разработка веб-приложений с помощью PHP и MySQL (Люк Веллинг, Лора Томсон)

Эта книга предназначена для тех, кто уже знаком, по крайней мере, с основами HTML и ранее разрабатывал программы на современных языках программирования, но…

09 11 2020 2:54:30

IF, ELIF, ELSE в Python

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

08 11 2020 1:54:34

Как манипулировать Dom

Основным объектом является объект Document, который, в свою очередь, содержит несколько других дочерних объектов. Каждый элемент в документе будет иметь со…

07 11 2020 2:15:57

Установите вкладку RichTextBox в C#

Вы можете установить разные вкладки вкладки RichTextBox для разных частей текста элемента управления RichTextBox. В этом примере используется следующий код…

06 11 2020 3:54:51

Получить информацию о формате даты для локали компьютера в C#

Объект System.Globalization namespace’s InstalledUICulture предоставляет множество статических методов, предоставляющих информацию о численном, дате и врем…

05 11 2020 6:57:12

Определение и использование бит-маски в C#

Пример Понимание бит-масок в C# объясняет, как использовать бит маски. Чтобы определить битовую маску, просто создайте enum и присвойте ему атрибут Flags,…

04 11 2020 16:42:23

Переменные и типы данных JavaScript

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

03 11 2020 6:39:56

Самоучитель C++ (Г. Шилдт)

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

02 11 2020 17:22:59

Разделить файлы изображений в C#

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

01 11 2020 11:45:41

Самоучитель С#. Начала программирования (Элеонора Ишкова)

Данная книга является превосходным и эффективным учебным пособием для изучения языка программирования С# с нуля. Правила и приемы С# иллюстрируются програм…

31 10 2020 17:55:20

Как найти свой IP-адрес и имя компьютера в Java

Класс InetAddress можно использовать для поиска доменных имен (DNS). Имя хоста может быть либо именем машины, например «mail.yahoo.com», либо текстовым пре…

30 10 2020 4:48:38

Массивы в C#

Массив в C#: Массив — это коллекция того же типа данных Массив может быть объявлен как фиксированный размер или динамический Массив может быть доступен по. ..

29 10 2020 0:38:54

Преобразование между случаем Паскаля, верблюжьим футляром и правильным случаем метод 2 в C#

Как и предыдущий пост, Преобразование между случаем Pascal, верблюжьим футляром и правильным случаем в C# , в этом примере показано, как использовать метод…

28 10 2020 4:12:40

Заменить текст, соответствующий шаблону в C#

В этом примере используется следующий код для замены текста, соответствующего шаблону в строке. Этот код создает объект Regex, передавая его конструктору ш…

27 10 2020 15:16:53

Сделайте движущийся фон в C#

В этом примере отображается текст с движущимся цветовым градиентом. Следующий ShadeRect метод содержит наиболее интересный код программы. Этот метод заполн…

26 10 2020 1:21:29

Каковы различия между списком и словарем в Python

Список и словарь представляют собой принципиально разные структуры данных. Список может хранить последовательность объектов в определенном порядке, чтобы в…

25 10 2020 17:10:59

Как объекты становятся пригодными для сбора мусора в Java?

Объект не станет кандидатом на сбор мусора, пока все ссылки на него не будут отброшены. Объект отмечен как имеющий право на сбор мусора, когда он больше не…

24 10 2020 2:54:38

Использование улучшенного метода расширения для вычисления стандартного отклонения в C#

Пример Вычислить стандартное отклонение в C# использует метод расширения, который вычисляет стандартное отклонение для целых чисел IEnumerable. К сожалению…

23 10 2020 13:51:39

Как использовать FTP в Python

Отправка небольшого файла по электронной почте в виде вложения может работать во многих ситуациях, но для больших файлов это может быть болезненный процесс…

22 10 2020 4:32:18

Получить HTML содержимое веб-страницы с помощью Python

Python предоставляет несколько способов сделать это в своей стандартной библиотеке . Вероятно, самый популярный способ загрузки файла — через HTTP с помощь…

21 10 2020 3:33:50

В чем разница между поточной и многопроцессорной обработкой?

Нить процесса означает сегмент кода процесса, который имеет свой собственный идентификатор потока, счетчик программ, регистры и стек и может выполняться не…

20 10 2020 23:50:12

Преимущества и недостатки JavaScript

Как и все языки компьютера, JavaScript имеет определенные преимущества и недостатки. Преимущества JavaScript: Быстрый для конечного пользователя: сценарий…

19 10 2020 22:26:14

Как объекты становятся пригодными для сбора мусора в Java?

Объект не станет кандидатом на сбор мусора, пока все ссылки на него не будут отброшены. Объект отмечен как имеющий право на сбор мусора, когда он больше не…

18 10 2020 15:25:54

Нарисуйте простую гистограмму в C#

Когда программа загружается, следующий код генерирует некоторые случайные данные. Этот код создает новый объект Random и использует его для заполнения масс…

17 10 2020 20:30:19

Класс Java HashSet

Класс HashSet расширяет AbstractSet и реализует заданный интерфейс. Набор представляет собой набор, который не содержит повторяющихся элементов и элементы…

16 10 2020 6:33:53

Назначение оператора «/» и «//» в python?

Разделение («/»): делит левый. Отдел работает на Python так, как он математически определен. Floor Division («//»): разделение операндов, где результатом я…

15 10 2020 6:26:59

Программирование на Java и С# для студента (О. В. Герман, Ю. О Герман)

Рассмотрены основные вопросы программирования на языках JAVA и С#, включая их сравнительное описание как двух важнейших и весьма сходных прикладных платфор…

14 10 2020 18:18:39

Как ClassLoader работает на Java?

Java Classloader является частью JRE (Java Runtime Environment), которая динамически загружает классы Java в JVM (виртуальная машина Java). В частности, Ja…

13 10 2020 3:16:27

Web Scraping в Python?

Web Scraping — это метод компьютерного программного обеспечения для извлечения информации с веб-сайтов. Этот метод в основном фокусируется на преобразовани…

12 10 2020 18:34:58

Смотрите, где парабола и гипербола пересекаются в C#

В этом примере показано, как пересекаться парабола и гипербола. Предыдущий пример из четырех частей здесь , здесь , здесь , и здесь объясняет, как на…

11 10 2020 15:37:51

Найти, открыть и заменить текст в файлах на C#

Пример Поиск файлов и замена текста в их в C# показывает, как вы можете найти и заменить текст в файлах. В этом примере вы можете открыть открытые файлы, д…

10 10 2020 16:12:12

Нарисуйте простую гистограмму в C#

Когда программа загружается, следующий код генерирует некоторые случайные данные. Этот код создает новый объект Random и использует его для заполнения масс…

09 10 2020 10:50:33

Преобразования десятичного числа в двоичное в C#

В этой статье мы напишем программу на C# для преобразования десятичного числа в двоичное. Вывод:  …

08 10 2020 19:29:22

Генерация случайных полигонов в C#

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

07 10 2020 19:20:35

1С:Предприятие. Бухгалтерский учет. Секреты работы (Наталья Рязанцева)

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

06 10 2020 8:27:29

Как сделать анимацию 2D персонажа в Unity 5

В сегодняшнем уроке мы разберем, как сделать анимацию 2D персонажа в Unity 5. Продолжим мы с предыдущего урока, на котором остановились….

05 10 2020 1:39:29

Анонимные методы в C# 6.0

В этой статье мы узнаем: Что такое анонимный метод? Как это работает на C#? Анонимные методы предоставляют метод передачи кода в качестве параметра делегата….

04 10 2020 9:59:51

Как найти даты в цифрах Pi в C#

Пример Поиск паттернов внутри pi в C# ищет шаблоны внутри цифры Pi. Вы можете использовать этот пример для поиска таких дат, как 4/1. В этом примере опреде…

03 10 2020 11:20:34

Рисование, перемещение и удаление сегментов линии в C#

В этом примере показано, как сделать программу рисования, которая позволяет рисовать, перемещать и удалять сегменты линии. Он основан на примере Нарисуйте…

02 10 2020 18:58:45

Позвольте пользователю выбрать принтер, а затем отправить распечатку непосредственно на него в C#

. .. Когда пользователь выбирает принтер и нажимает кнопку « Печать», следующий код отправляет распечатку на выбранный принтер. Источник: http://csharphelper…

01 10 2020 12:52:10

1С:Предприятие. Конфигурирование и администрирование для начинающих (Владимир Дубянский)

В книге 1 С: Предприятие. Конфигурирование и администрирование для начинающих описаны основные приемы программирования и конфигурирования, общие для всех ком…

30 09 2020 14:13:22

Рисуем деревья вертикально или горизонтально в C#

Пример Обработать общие события мыши TreeNode в C# показывает, как создать общий класс узлов, который может рисовать деревья с узлами, которые содержат что…

29 09 2020 15:27:39

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

Концепция IP-адресов на примере Python-модуля ipaddress

В самом грубом представлении IP-адрес – это просто число. В случае протокола IPv4 IP-адрес– это 32-разрядное целое число, используемое для представления хоста в сети. То есть существует 232 возможных IPv4 адреса – от 0 до 4 294 967 295. IPv4-адреса записывают в виде четырех октетов – целых чисел, разделенных точками:

220.14.9.37
    

Каждый октет – это один байт, число от 0 до 255. То есть максимальный адрес равен 255.255.255.255, а минимальный – 0.0.0.0.

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

Примечание

Модуль ipaddress добавлен в стандартную библиотеку в версии Python 3.3, примеры туториала проверены на примере Python 3.8. Пользователь matyushkin любезно адаптировал программный код статьи в виде конспективного Jupyter-блокнота. За счёт этого с кодом можно поиграть в среде Colab.

Получим внешний IP-адрес нашего компьютера для работы с ним в командной строке. В Linux это делается так:

$ curl -sS ifconfig.me/ip
220.14.9.37
    

Этот запрос узнает наш IP-шник на сайте ifconfig.me. Сайт также выдает множество другой полезной информации о вашем сетевом подключении.

Примечания

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

Теперь откроем интерпретатор Python. Чтобы создать объект Python с инкапсулированным адресом, создадим класс IPv4Address:

>>> from ipaddress import IPv4Address
>>> addr = IPv4Address("220.14.9.37")
>>> addr
IPv4Address('220.
14.9.37')

Передача строки "220.14.9.37" в конструктор IPv4Address – наиболее распространенный подход, но класс может принимать и другие типы:

>>> IPv4Address(3691907365)   # Из целого числа
IPv4Address('220.14.9.37')
>>> IPv4Address(b"\xdc\x0e\t%")  # Из байтовой строки
IPv4Address('220.14.9.37')
    

Адрес можно распаковать в требуемую форму:

>>> int(addr)
3691907365
>>> addr.packed
b'\xdc\x0e\t%'
    

Экземпляры IPv4Address являются хэшируемыми и могут использоваться в качестве ключей словаря:

>>> hash(IPv4Address("220.14.9.37"))
4035855712965130587
>>> num_connections = {
...     IPv4Address("220.14.9.37"): 2,
...     IPv4Address("100.201.0.4"): 16,
...     IPv4Address("8.240.12.2"): 4,
... }
    

Класс IPv4Address также реализует методы, позволяющие проводить сравнения:

>>> IPv4Address("220.
14.9.37") > IPv4Address("8.240.12.2") True >>> addrs = ( ... IPv4Address("220.14.9.37"), ... IPv4Address("8.240.12.2"), ... IPv4Address("100.201.0.4"), ... ) >>> for a in sorted(addrs): ... print(a) ... 8.240.12.2 100.201.0.4 220.14.9.37

Можно использовать любой стандартный оператор сравнения целочисленных значений адресных объектов.

Сеть – это набор IP-адресов. Сети описываются и отображаются как непрерывные диапазоны адресов. Например, сеть может соответствовать диапазону 192.4.2.0192.4.2.255, т. е. включать 256 адресов. Если нужно это отобразить в краткой форме, используется нотация CIDR.

В CIDR сеть определяется с помощью сетевого адреса и префикса <network_address>/<prefix>:

>>> from ipaddress import IPv4Network
>>> net = IPv4Network("192. 4.2.0/24")
>>> net.num_addresses
256
# Вывести префикс можно с помощью свойства prefixlen:
>>> net.prefixlen
24
    

В данном случае префикс равен 24. Префикс – это количество ведущих битов, соответствующих входящим в сеть адресам. Ведущие биты отсчитываются слева направо.

Пример: входит ли адрес 192.4.2.12 в сеть 192.4.2.0/24?

Ответ: да, так как ведущие 24 бита адреса 192.4.2.12 – это первые три октета: 192.4.2. Последний октет соответствует последним 8 битам 32-битного IP-адреса.

Воспользуемся netmask для маскирования битов в сравниваемых адресах.

Определение

Битовая маска – данные, которые используются для маскирования – выбора отдельных битов или полей из нескольких битов из двоичной строки или числа.

>>> net.netmask
IPv4Address('255.255.255.0')
    

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

Побитовое сравнение

Последние 8 бит в 192.4.2.12 маскируются нулем и игнорируются при сравнении.

>>> IPv4Address("192.4.2.12") in net
True
>>> IPv4Address("192.4.20.2") in net
False
    

Рассмотрим еще один важный тип адреса – широковещательный.

Определение

Широковещательный адрес – условный (не присвоенный никакому устройству в сети) адрес, который используется для передачи широковещательных пакетов в компьютерных сетях.

Это единственный адрес, который может использоваться для связи со всеми хостами сети:

>>> net.network_address
IPv4Address('192. 4.2.0')
    

Чаще всего вы будете сталкиваться с длиной префикса кратной 8.

Распространенные подсети

Любое целое число от 0 до 32 является допустимым, но такой вариант встречается реже:

>>> net = IPv4Network("100.64.0.0/10")
>>> net.num_addresses
4194304
>>> net.netmask
IPv4Address('255.192.0.0')
    

Класс IPv4Network позволяет перебирать отдельные адреса в цикле for:

>>> net = IPv4Network("192.4.2.0/28")
>>> for addr in net:
...     print(addr)
...
192.4.2.0
192.4.2.1
192.4.2.2
...
192.4.2.13
192.4.2.14
192.4.2.15
    

Инструмент net.hosts() возвращает генератор, выдающий адреса, исключая сетевые и широковещательные:

>>> h = net.hosts()
>>> type(h)
<class 'generator'>
>>> next(h)
IPv4Address('192. 4.2.1')
>>> next(h)
IPv4Address('192.4.2.2')
    

Подсеть – это часть IP-сети:

>>> small_net = IPv4Network("192.0.2.0/28")
>>> big_net = IPv4Network("192.0.0.0/16")
>>> small_net.subnet_of(big_net)
True
>>> big_net.supernet_of(small_net)
True
    

В коде выше small_net содержит 16 адресов, а

big_net – 65 536.

Распространенный способ разбиения на подсети – это увеличение длины префикса на 1:

Разбиение сети

К счастью, IPv4Network расчеты подсетей поддерживаются встроенным методом subnets():

>>> for sn in net.subnets():
...     print(sn)
...
200.100.10.0/25
200.100.10.128/25
    

В передаваемом subnets() аргументе можно задать, каким должен быть новый префикс:

>>> for sn in net.
subnets(new_prefix=28): ... print(sn) ... 200.100.10.0/28 200.100.10.16/28 200.100.10.32/28 ... 200.100.10.208/28 200.100.10.224/28 200.100.10.240/28

Администрация адресного пространства Интернет (Internet Assigned Numbers Authority, IANA) совместно с Инженерном советом Интернета (Internet Engineering Task Force, IETF) осуществляют надзор за распределением диапазонов адресов. Реестр подобных адресов – важная таблица, которая описывает, для каких целей зарезервированы диапазоны IPv4-адресов.

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

Зарезервированные диапазоны

Случайным образом выберем адрес – 10.243.156.214. Относится ли этот адрес к приватным? Для этого проверим, попадает ли он в диапазон cети 10.0.0.0/8:

>>> IPv4Address("10. 243.156.214") in IPv4Network("10.0.0.0/8")
True
    

Другой специальный тип адреса – это локальный адрес связи, состоящий из блока 169.254.0.0/16. Примером может служить Amazon Time Sync Service, доступный для инстансов AWS EC2 по адресу 169.254.169.123. Данный пул также использует Windows для выдачи адресов сетевым адаптерам при отсутствии интернета от провайдера.

>>> timesync_addr = IPv4Address("169.254.169.123")
>>> timesync_addr.is_link_local
True
    

Модуль ipaddress предоставляет набор свойств для проверки того, относится ли адрес к специальным:

>>> IPv4Address("10.243.156.214").is_private
True
>>> IPv4Address("127.0.0.1").is_loopback
True
>>> [i for i in dir(IPv4Address) if i.startswith("is_")]
['is_global',
 'is_link_local',
 'is_loopback',
 'is_multicast',
 'is_private',
 'is_reserved',
 'is_unspecified']
    

Вот еще несколько зарезервированных сетей:

  • 0. 0.0.0/8 – адреса источников пакетов «своей» сети;
  • 127.0.0.0/8 – используется для локального хоста;
  • 169.254.0.0/16 – внутренние адреса;
  • 198.18.0.0/15 – для бенчмаркинга сетей.

В дополнение к хорошо документированному API, исходный код CPython и класс IPv4Address показывают некоторые отличные идеи, как улучшить собственный код.

Компоновщик

Модуль ipaddress использует преимущества шаблона проектирования «Компоновщик». Класс IPv4Address представляет собой компоновщик, который оборачивает обычное целое число.

Каждый экземпляр IPv4Address имеет атрибут _ip, число типа int. Многие свойства и методы класса определяются значением этого атрибута:

>>> addr = IPv4Address("220. 14.9.37")
>>> addr._ip
3691907365
    

Атрибут _ip отвечает за создание int(addr). Цепочка вызовов выглядит следующим образом:

Цепочка вызовов в компоновщике

Продемонстрируем силу ._ip путем расширения класса IPv4Address:

from ipaddress import IPv4Address
class MyIPv4(IPv4Address):
    def __and__(self, other: IPv4Address):
        if not isinstance(other, (int, IPv4Address)):
            raise NotImplementedError
        return self.__class__(int(self) & int(other))
    

Добавление .__and__() позволяет использовать бинарный оператор &, чтобы применять маску к IP-адресу:

>>> addr = MyIPv4("100.127.40.32")
>>> mask = MyIPv4("255.192.0.0")  # Соответствует префиксу /10
>>> addr & mask
MyIPv4('100. 01]", "", binary_repr), 2) (строка 14) состоит
из двух частей:

  • удаление из входящей строки всего, кроме нулей и единиц;
  • анализ результата с помощью int(<string>, 2).

Методы binary_repr() и from_binary_repr() позволяют проводить двустороннюю конвертацию:

>>> MyIPv4("220.14.9.37").binary_repr
'11011100.00001110.00001001.00100101'
>>> MyIPv4("255.255.0.0").binary_repr  # Маска для префикса /16 
'11111111.11111111.00000000.00000000'
>>> MyIPv4.from_binary_repr("11011100 00001110 00001001 00100101")
MyIPv4('220.14.9.37')
    

Таким образом, мы разобрали несколько способов использования преимуществ шаблона IP-as-integer, который может помочь расширить функциональность IPv4Address с небольшим количеством дополнительного кода.

Заключение

Если вам нравится язык Python и вы хотите детально овладеть стандартной библиотекой, у нас есть множество родственных публикаций:

  • Как хранить объекты Python со сложной структурой (о модуле pickle)
  • Итерируем правильно: 20 приемов использования в Python модуля itertools
  • Не изобретать велосипед, или Обзор модуля collections в Python
  • Назад в будущее: практическое руководство по путешествию во времени с Python
  • Как подружить Python и базы данных SQL. Подробное руководство

Как скрыть IP-адрес - Простой способ

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

Темы, которые будут затронуты:

  • IP-адрес – что это такое?
  • 5 способов скрыть IP-адрес в интернете
  • Зачем скрывать IP-адрес в сети – основные причины

IP-адрес – что это такое?

Попробуем объяснить, что такое IP-адрес, простыми словами. Это строка цифр и десятичных знаков, используемых для идентификации вашего устройства в сети. Во время серфинга в интернете происходит некий «диалог» между сервером и пользователем. Клиент получает доступ к серверу, а сервер идентифицирует IP-адрес и отправляет данные. Связь между серверами и IP-адресами – часть огромной цепочки под названием TCP/IP.

Ваш айпи адрес является общедоступным, то есть видимым в интернете. Тот, кто любит конфиденциальность и отрицательно относится к цензуре, давно скрыл IP компьютера от интернет-провайдеров и рекламодателей.

Основные типы IP-адресов

Существует несколько классификаций IP-адресов: IPv4 и IPv6, локальные и общедоступные, статические и динамические. Рассмотрим каждую из этих категорий более детально.

IPv4 или IPv6 – в чем разница

Протокол IPv4 – один из первых интернет-стандартов, который был разработан в 60-х годах XX века. Он применяет 32-битные поля, допустимое пространство ограничивается 4,3 млрд. адресов. IPv4 обеспечивает качественное соединение сетей и успешно реализует технологию передачи датаграмм. Он создает простой уровень коммуникации между устройствами, не предполагает определенную последовательность действий. Из-за некоторых ограничений IPv4, в 90-е годы началась работа над созданием более усовершенствованного поколения интернет-протокола.

В свою очередь, IPv6 отличается иерархической маршрутизацией и применением 128-битных адресов. По сравнению с протоколом IPv4, он обладает рядом преимуществ: улучшенная совместимость с мобильными сетями, простое администрирование, высокий уровень безопасности.

Image source: Guru99
Локальный и общедоступный адрес IP

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

Статический или динамический адрес?

На протяжении всего срока действия статический IP-адрес не меняется. Однако большинство устройств в сети интернет используют динамические IP-адреса. Их назначает сеть при первоначальном подключении. В процессе использования такой IP-адрес меняется.

5 способов скрыть IP-адрес в интернете

Есть множество способов сохранить анонимность в интернете. Одни методы работают, другие нет. Мы хотим рассказать вам об инструментах, которые действительно помогают скрыть IP-адрес в интернете. Вот они:

  • Использование VPN-сервиса;
  • Установка браузера Tor;
  • Подключение к сети интернет через прокси-серверы;
  • Использование бесплатного (общедоступного) Wi-Fi;
  • Заказ нового IP у интернет-провайдера.

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

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

Сервис VPN – пожалуй, самый быстрый и простой способ скрыть IP-адрес. Регистрация в Virtual Private Network позволяет сменить IP-адрес всего в несколько кликов. Каждый раз, когда вы заходите в интернет, система выдает новый идентификатор, который отличается от реальных данных вашего компьютера.

Пожалуй, главным преимуществом подключения VPN является выбор географического местоположения IP-адреса. Находясь в одной из стран СНГ, пользователь может выходить в интернет, маскируясь под любую страну мира: Австрию, Соединенные Штаты, Германию, Сингапур и пр. Соединение остается безопасным, VPN работает стабильно и без сбоев.

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

Установка браузера TOR

Tor Browser – бесплатная некоммерческая программа, предоставляющая анонимный доступ к сети интернет. Она позволяет обходить блокировки многих сайтов, защищает трафик от пристального контроля властей, провайдеров. Никто не сможет узнать, кто вы и где находитесь, какие сайты посещаете.

Приложение ТОР устанавливается по такому же принципу, что и другие браузеры: Opera, Google Chrome и Mozilla. Отличие заключается в том, что ваш IP-адрес остается скрытым, когда вы подключаетесь к сети интернет. Все данные пользователя надежно шифруются, что обеспечивает высокую анонимность данных. Tor Browser используется в странах с ограниченным доступом к сети Интернет.

Пожалуй, главный плюс браузера ТОР заключается в его доступности – программное обеспечение распространяется бесплатно. Однако скорость доступа может снижаться, ведь данные проходят несколько этапов обработки. Поэтому смотреть стрим видео или слушать музыку через Tor не всегда комфортно.

Подключение через прокси-серверы

Еще один способ скрыть свой IP-адрес – подключиться к специальному прокси-серверу. Технология развития прокси прошла долгий путь с начала 90-х до 2000-х. Чтобы скрыть личность пользователя и зашифровать информацию, используются сложные одноранговые сети.

Важная информация! Несмотря на огромное количество бесплатных прокси-серверов, их использование может быть крайне рискованным. Отдельные сервисы не только замедляют скорость интернета, но и используют пропускную способность вашего ПК для маршрутизации трафика. Вот почему так важно выбрать авторитетный прокси-сервер от компании с хорошей репутацией. Скорее всего, он будет платным, но вы получите реальные гарантии безопасности.

Бесплатный Wi-Fi как способ скрыть свой IP

Когда вы подключаетесь к публичному вай-фаю, IP-адрес временно меняется. Но и здесь есть свои подводные камни. При использовании общедоступного вай-фая существует высокий риск, что ваши данные перехватят злоумышленники. Поэтому вы рекомендуем пользоваться общественным Wi-Fi только в крайнем случае.

Заказ нового IP-адреса у провайдера

У вашего интернет-провайдера есть все полномочия, чтобы сменить IP-адрес. Адрес может быть как статическим, так и динамическим. Достаточно подать заявление и внести платеж – как правило, такая услуга является платной. При заказе нового IP-адреса у провайдера минусов намного больше, чем плюсов. В целом, это более дорогой и менее эффективный способ, чем все перечисленные выше. Он может повлечь за собой целый ряд проблем:

  • При выборе нового IP-адреса меняется DNS-сервер, что крайне нежелательно;
  • Старым сервисам назначаются новые адреса;
  • Возможна некорректная работа правил доступа и блокировка брандмауэром;
  • Учитывая огромное количество изменений, которые нужно внести при настройке нового IP-адреса у провайдера, есть высокая вероятность допустить ошибку. И тогда вся построенная вами сеть рухнет, как костяшки домино.

Зачем скрывать IP-адрес в сети – основные причины

Многие пользователи интернета делают все возможное, чтобы скрыть свой айпи адрес от посторонних глаз. Но зачем они это делают? На то есть много причин:

Сохранить анонимность

IP-адрес в интернете – почти как внутренний паспорт. Используя его, злоумышленники могут узнать ваше полное имя, сферу деятельности, регион проживания и другие данные. Звучит жутковато, не правда ли? Это не значит, что уже завтра мошенники смогут найти ваш дом и подобрать ключ к замку. Однако они могут совершить хакерскую атаку на провайдера, узнать конфиденциальную информацию. Ситуация усугубляется, если вы ищете отраслевую информацию или данные о конкурентах. Вот почему так важно сохранять полную анонимность – особенно если ваш бизнес связан с поиском информации в интернете или маркетинговыми исследованиями.

Решить вопрос с геолокацией

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

Обойти сетевые ограничения

Сетевые администраторы и провайдеры часто используют специальные блокираторы (фаерволлы), чтобы ограничить доступ к определенным сайтам. Кстати, ограничения могут вводить определенные компании или образовательные учреждения. Изменение айпи адреса – пожалуй, самый простой способ обойти эти блокировки. К вашему компьютеру больше не будут применяться правила фаервола, вы сможете просматривать любые веб-страницы в режиме 24/7.

Избежать запрета IP-адресов

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

Заблокировать вредоносные атаки

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

  • Тестирование системы;
  • Изучение попыток внедрения вредоносного кода;
  • Проверку на уязвимость;
  • Отражение хакерских атак.

Своевременная замена IP-адреса позволяет скрыть свою активность в интернете. Рекламодатели публикуют персонализированные объявления, просто зная айпи вашего ПК. Сокрытие адреса – проверенный способ защитить конфиденциальность. Никто не должен знать, для каких целей вы используете интернет.

Подведение итогов

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

Добиться 100% анонимности можно различными способами. Но как показывает практика, использование прокси-сервера для сбора данных в больших масштабах является лучшим вариантом из возможных. Надеемся, наша статья помогла вам изучить все доступные решения и выбрать подходящий набор инструментов для работы в интернете.

 

Получите полную анонимность IP-адреса

что это такое, как проверить и узнать

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

Аббревиатура IP означает Internet Protocol: так называется основной протокол интернета, по которому «общаются» и передают информацию разные устройства в сети. Для работы IP нужна адресация — присвоение разным устройствам уникальных адресов. Поэтому IP-адрес нужен для реализации этого протокола. Иначе интернет не работал бы как надо.

Стандартный на этот момент IP-адрес — его еще называют IPv4 — выглядит как 4 числа от 0 до 255, разделенные между собой точками. Ниже мы подробнее расскажем, почему он устроен именно так, что означают числа и как классифицируются адреса.

Название читается как «айпи-адрес». Еще можно встретить сленговое слово «айпишник».

Курс IT-специалист с нуля Поможем определить подходящую вам IT-профессию и освоить её с нуля. Вы на практике попробуете разные направления: разработку на разных языках, аналитику данных, Data Science, менеджмент в IT. Это самый подходящий курс для построения карьеры в IT в новой реальности.

Хочу в IT

IP нужен для маршрутизации и установки соединения между разными компьютерами в сети. Представьте себе интернет как огромное пространство, где есть множество разных устройств. Чтобы сеть работала как мы привыкли, эти устройства должны соединяться друг с другом и передавать данные, порой через множество промежуточных узлов. Так работает Internet Protocol.

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

На самом деле все чуть сложнее: мы ведь не вводим IP-адреса в браузер, чтобы зайти на любимый сайт. Это потому, что с IP связано доменное имя: уникальный текстовый идентификатор, адрес сайта, такой как google.com или skillfactory.ru. Соотнесением между IP и доменом занимается система, которая называется DNS, Domain Name System.

Когда человек вводит в браузер текстовый адрес или переходит по ссылке, внутри сети происходит огромная работа. Специальное устройство на стороне провайдера, DNS-резолвер, обращается ко множеству других серверов в сети, чтобы соотнести доменное имя с IP-адресом и узнать порты для соединения с нужным узлом.

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

Вся эта сложная система работает благодаря IP-адресам — они стоят во главе угла.

Стандартный IP-адрес называется IPv4. Это четыре числа, разделенные между собой точкой, причем каждое число в двоичном формате состоит из 8 цифр. В переводе в десятичные числа это значит, что все они находятся в диапазоне от 0 до 255. Одна цифра — один бит, и выходит, что в каждом IP-адресе четыре восьмибитных числа.

Эти числа не случайны, по ним можно ориентироваться, и они несут в себе информацию. Условно можно разделить составляющие IP на номер сети и номер хоста.

Номер сети. Это первые три числа в IPv4. Они показывают, в какой сети находится номер, и определяют его положение. Если у двух IP-адресов одинаковый номер сети, значит, устройства с этими адресами могут общаться напрямую. Если нет — им понадобится устройство-«посредник», роутер или маршрутизатор, расположенный где-то в структуре сети. Маршрутизатор соединяет между собой разные сети и служит как бы «верхним», объединяющим звеном. Еще он помогает распределять потоки сообщений в разные сети согласно своим инструкциям. Маршрутизатор тоже имеет IP, зачастую даже несколько.

Номер хоста. Последнее число в адресе — номер хоста, то есть конкретного устройства в сети.

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

По IP-адресу можно понять, к какой сети он принадлежит — большой или маленькой. Это называют классами IP-адресов. Вот какими они бывают.

  • A. Большая сеть, глобальная. Первое число — номер сети, остальные три — номер хоста. Первый бит в первом числе такой сети — 0. Это значит, что первое число может принимать значения от 0 до 127.
  • B. Средняя сеть — на нее указывают два первых числа, оставшаяся часть является номером хоста. В средней сети первые два бита первого числа — 10. IP-адреса в такой сети — от 128.0.0.0 до 191.255.0.0.
  • C. Маленькая сеть, на которую указывают три первых числа. В каждой такой сети может быть до 256 устройств. IP-адреса таких сетей начинаются с двоичных цифр 110. Например, это может быть сеть офиса или дома.

Эту систему можно представить как книгу с параграфами. Название большого раздела — крупная сеть, первое число. Главы в разделе — как средние сети. Параграфы внутри главы — как маленькие. Получается иерархия, от больших сетей к малым.

Еще есть сети D и E: они технические, служебные, туда входят особые IP, о которых мы поговорим ниже.

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

Маску подсети отправляют вместе с IP-адресом, когда устройства обмениваются данными. Она похожа на IP: это тоже четыре числа, разделенные точкой. В двоичном представлении каждое из четырех чисел — или 4 единицы, или 4 нуля. Это значит, что в маске подсети числа — или 0, или 255.

Маска подсети «накладывается» на IP-адрес и выделяет из него номер сети. Там, где в маске единицы, находится номер сети. Там, где нули, — номер хоста.

Понять это можно с помощью операции логического «И»: если провести вычисление «IP-адрес И маска подсети», получится номер сети. Соответственно, чтобы получить номер хоста, нужно сначала инвертировать маску с помощью логического «НЕ», а потом точно так же логически сложить с IP-адресом.

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

Например, 127.0.0.0 — это localhost, или локалхост, идентификатор, который указывает на себя самого. Если компьютеру вдруг надо обратиться по IP к себе, то он использует этот адрес.

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

А вот 10.0.0.0 — это другие устройства в локальной сети: компьютеры, смарт-телевизоры, телефоны, колонки, принтеры в офисе и многое другое. Последняя цифра может отличаться в зависимости от номера самого устройства.

255.255.255.255 — «широковещательный» адрес, по которому поток данных отправляют всем участникам сети. А 0.0.0.0 — адрес «по умолчанию», который по сути означает «извините, адресата нет». Еще его используют как указание серверу принимать данные от любых IP.

Выше мы говорили, как устроен адрес IPv4, но это не единственный возможный формат. И вот почему.

Если перебрать все возможные IPv4, получится набор адресов от 0.0.0.0 до 255.255.255.255. Всего возможных комбинаций около четырех миллиардов. Раньше казалось, что этого хватит за глаза, но интернет развивался, и IP-адреса начали заканчиваться. Поэтому появился обновленный протокол, в котором есть IPv6 — новая версия IP-адресов.

Отличия. IPv4 занимает 32 бита — 4 раза по 8 бит. Это размер, нужный для хранения четырех восьмизначных двоичных чисел. А IPv6 длиннее: адрес состоит из 128 битов, что намного больше.

Число возможных комбинаций в таком случае огромно: 2 в степени 128. Это больше, чем вес Земли, выраженный в граммах. На одного человека, живущего на планете, приходится 300 миллионов возможных комбинаций IPv6. Такой большой запас нужен, чтобы точно не допустить нехватки адресов в обозримом будущем.

Написание. IPv6 выглядит не так, как IPv4. Это набор из восьми четырехзначных чисел в шестнадцатеричной системе счисления. Числа разделены между собой двоеточиями. В них могут встречаться буквы: шестнадцатеричная система содержит больше цифр, чем у нас существует, поэтому некоторые из них обозначают буквами от A до F.

Распространение. Сейчас IPv6 существует параллельно с IPv4. Предположительно, со временем эти адреса будут распространяться все сильнее. В 2020 году их было около 30% в мире, а вот в России таких адресов пока немного, меньше 5%, но они есть.

Перейти с IPv4 на IPv6 можно, а вот обратно — практически невозможно. А если к сети подключают совсем новое устройство, есть вероятность, что ему автоматически выдадут IPv6 — но тут все сложнее, потому что не все провайдеры работают с такими адресами. А присвоением IP-адреса занимается как раз провайдер.

Из текста выше можно было заметить: есть адреса, которые существуют только в локальных, «внутренних» сетях. А есть те, которые показывают расположение устройства в интернете. Это разные группы IP-адресов. Они называются частными и общедоступными.

  • Частные IP-адреса существуют внутри вашей маленькой сети. Например, когда вы вводите в адресную строку айпи роутера — это частный адрес. А если у вас дома есть IoT-устройства, то они объединяются в локальную сеть и общаются друг с другом с помощью уникальных частных IP. Кстати, зарезервированные адреса тоже частные — по определению, ведь в интернете им ничего не соответствует.
  • Общедоступные IP-адреса — это сетевые адреса устройства в интернете. Они «выглядывают» наружу маленькой сети, и их может увидеть любое другое подключенное к сети устройство. Они используются для выхода в глобальную сеть и для связи с другими устройствами.

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

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

По умолчанию у конечных пользователей динамический IP. Сейчас расскажем подробнее.

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

Клиенты меняются, переезжают, разрывают договоры и заключают новые, переходят на другие тарифные планы и делают много чего еще. Более того: они заходят и выходят из интернета. Если бы у каждого из них был отдельный закрепленный за ним IP, это создало бы провайдеру много дополнительной работы. А IP-адреса в его распоряжении бы быстро закончились.

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

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

Статический. Есть и статические IP — такие, которые «намертво» закрепляются за одним пользователем и не меняются. По умолчанию провайдеры не выделяют пользователям статический IP. Это отдельная услуга за дополнительную плату, потому что статика для провайдера — лишняя работа. А клиентам статический IP обычно не нужен. Поэтому некоторые вовсе не предоставляют такую услугу.

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

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

Возникает вопрос: как тогда другие устройства понимают, какой сайт открыть по этому IP? Ответ — благодаря внутренним программам хостингов. Когда устройство «приходит» по нужному IP-адресу, его запрос попадает на большой сервер. Там несколько сайтов и специальное ПО. Оно смотрит на пришедший запрос и по информации из сообщения определяет, с каким сайтом связать устройство.

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

Если ваш IP-адрес динамический, то будьте готовы к тому, что в разные «заходы» в сеть он будет различаться. Это полезно и вам — для безопасности.

Есть фраза-мем «вычислить по IP». Она пришла из времен, когда сетевая инфраструктура еще не была так развита. На самом деле сейчас по IP-адресу можно узнать только ограниченное количество данных: страну, область, город и имя провайдера. Определить точный физический адрес и тем более конкретного человека так не получится. Разве что если взломать провайдера — но это очень сложная задача.

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

Также существуют DDoS-атаки на конкретные IP-адреса и взломы систем через IP-адрес и порт, но это в основном касается серверов и устройств со статическим IP.

Поэтому безопасность в интернете важна, несмотря на то что адреса сейчас в основном динамические.

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

Работает это так: ваше устройство как бы «маскируется» специальным сервером, который расположен в другом месте и имеет соответствующий IP. Но в случае VPN подключение еще и дополнительно шифруется, чтобы данные нельзя было перехватить. К тому же прокси работает как приложение и защищает только трафик из браузера, где он включен. А VPN действует на уровне всей операционной системы устройства и позволяет шифровать весь трафик, поэтому это чаще не браузерная надстройка, а отдельная программа, которая устанавливается на компьютер или телефон.

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

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

Узнайте больше про то, как устроен интернет, на наших курсах. Мы расскажем все, что нужно знать для старта в IT.

Курс IT-специалист с нуля Поможем определить подходящую вам IT-профессию и освоить её с нуля. Вы на практике попробуете разные направления: разработку на разных языках, аналитику данных, Data Science, менеджмент в IT. Это самый подходящий курс для построения карьеры в IT в новой реальности.

Хочу в IT

IP-АДРЕСАЦИЯ И ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ Текст научной статьи по специальности «Компьютерные и информационные науки»

УДК 7.036:004.8

IP-АДРЕСАЦИЯ И ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Морковкин Егор Андреевич,

магистрант

Новичихина Алёна Александровна,

магистрант

Замулин Иван Сергеевич,

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

и автоматизированных систем Хакасский государственный университет им. Н. Ф. Катанова (г. Абакан)

Вопросы безопасности в сети Интернет на сегодняшний день являются достаточно актуальными. Идентификация пользователей с определённым адресом в виртуальном пространстве - IP-адресом - позволяет получать конкретные сведения о них: от географического местоположения до персональных данных. Такой аспект может быть нежелательным для тех, кто имеет дело с конфиденциальной информацией или беспокоится о доступности персональной информации для третьих лиц. Риски особенно возрастают, когда пользователи работают в Интернете в общественных местах или через Wi-Fi. В статье рассмотрены основные категории, ключевые аспекты уязвимости и способы обеспечения безопасности IP-адресов. Также представлен фрагмент работы программы, позволяющей по IP-адресу пользователя определять его местоположение и некоторые персональные данные.

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

IP-ADDRESSING AND INFORMATION SECURITY

Morkovkin Yegor Andreevich,

graduate student

Novichikhina Alyona Aleksandrovna,

graduate student

Zamulin Ivan Sergeevich,

Ph. D. in Physics and Mathematics, Associate Professor, Head of the Software for Computer Technology and Automated Systems Department

Katanov Khakass State University (Abakan)

Security issues on the Internet are quite relevant today. Identification of users with a specific address in the virtual space - an IP address - allows you to get specific information about them: from geographical location to personal data. This aspect may be undesirable for those who deal with confidential information or worry about the availability of personal information to third parties. The risks are especially increased when users surf the Internet in public places or via Wi-Fi. The article discusses the main categories, key aspects of vulnerability and ways to ensure the security of IP addresses. There is also a fragment of the program that allows you to determine the user's location and some personal data by the user's IP address.

Key words: IP address, IP address categories, data privacy, tracking, Internet security.

Даже если вы находитесь в киберпростран-стве, вы всё равно характеризуетесь определённым положением, и ваше местоположение определяется вашим IP-адресом (Internet Protocol Address). IP-адрес, который является стандартом для адреса интернет-протокола и представляет собой идентификационный номер устройства, связанный с определённым компьютером или сетью компьютеров. По сути, IP-адреса позволяют компьютерам отправлять

и получать информацию. Но они также могут использоваться для отслеживания физического местоположения пользователей, что не совсем приемлемо для тех, кто заботится о конфиденциальности [1].

Ш-адрес - это уникальный сетевой адрес узла, идентифицирующий устройство в локальной сети или Интернете. Он представляет собой серию из 32 двоичных бит, разделённых на четыре 8-битных байта и переведённых в

десятичную систему (например,

226.162.43.158). Четыре разряда называют октетами. По такой схеме адресации можно было создать более 4 миллиардов IP-адресов, определяемых протоколом IPv4 [2]. Позднее такого количества IP-адресов стало недостаточно. Кроме того, были выявлены недостатки протокола IPv4. В результате был разработан 128-битовый протокол IPv6, удовлетворяющий более высоким требованиям безопасности по сравнению с протоколом IPv4 [4].

IP-адреса можно разделить на несколько категорий, каждая из которых имеет определённые характеристики. Это: публичные, частные, динамические, статические, выделенные IP-адреса.

Публичный IP-адрес (Public IP). Каждое подключенное к Интернету устройство имеет публичный IP-адрес, распространяемый интернет-провайдерами для присвоения имён и номеров. Эти IP-адреса общедоступны для поиска в Интернете, поэтому мы можем найти любое устройство, зная его IP-адрес.

Частный/локальный IP-адрес (Private IP). В отличие от общедоступных IP-адресов, частные IP-адреса недоступны для поиска в Интернете. Это номера, которые маршрутизаторы назначают устройствам в своих сетях, чтобы они могли сообщаться друг с другом.

Динамический IP-адрес (Dynamic IP) - это любой тип IP-адреса, который меняется каждый раз при подключении, обычно через VPN (виртуальную частную сеть). Это затрудняет отслеживание пользователей в Интернете, так как их адрес постоянно меняется. Кроме повышенной безопасности, динамические адреса отличаются простой и автоматической установкой, более низкой стоимостью и снижением вероятности конфликта IP-адресов [3].

Статический IP-адрес (Static IP) не меняется. С помощью VPN статические IP-адреса обычно передаются тысячам пользователей, чтобы скрыть их личность. Однако некоторые веб-сайты блокируют эти общие IP-адреса, что

требует от пользователей получения выделенных IP-адресов.

Выделенный IP-адрес (Dedicated IP) назначается только одному пользователю и не может использоваться несколькими [1].

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

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

1. Персонализированный спам. Рекламодатели становятся всё более изобретательными с каждым днём. В последнее время многие рекламодатели начали внедрять программы отслеживания в онлайн-статьи. Эти трекеры записывают IP-адрес и отправляют целевые объявления на основе просмотров пользователя. Например, прочитав статью о том, как ухаживать за спаниелем, на следующий день вы можете начать получать на электронную почту рассылку от питомников и зоомагазинов.

2. Географическое местоположение. IP-адрес указывает, в каком городе находится пользователь. Если эта информация попадает к третьим лицам, у них появляется возможность узнать фактический адрес. Так, многие злоумышленники следят за социальными сетями, чтобы знать, когда домовладельцы уезжают из города. Это повышает риск совершения преступлений в момент отсутствия хозяев дома.

3. Доступ к определённым услугам: геолокация важна не только для потенциальных преступников. Многие онлайн-сервисы получают информацию по IP-адресу и ограничивают доступ к их услугам. Например, YouTube TV позволяет видеть местный контент только из города, в котором проживает пользователь. Netflix определяет, в какой стране находится

каждый клиент сервиса, и предоставляет доступ только к библиотеке фильмов и иного контента этой страны. Многие компании устанавливают дифференцированные тарифы в зависимости от того, где проживает пользователь. Не является исключением доступ к он-лайн-играм. Администратор, который имеет доступ к настройкам сервера, может запретить участвовать в игре, добавив 1Р-адрес в чёрный список.

4. DoS/DDoS-атаки. Зная Ш-адрес пользователя, можно выполнить DoS-атаку (отказ в обслуживании). При такой атаке затрудняется получение доступа к сетевым ресурсам, включая посещение различных веб-сайтов, использование онлайн-аккаунта и даже электронной почты. Самый распространённый метод осуществления таких атак заключается в отправке большого количества запросов на адрес сервера, что вызывает отключение системы из-за перегрузки трафиком. DDoS-атака (распределённый отказ в обслуживании) работает аналогично, только в ней задействовано несколько машин, поэтому трафик в данном случае ещё более интенсивный.

5. Доступ к личной информации: похитители личных данных постоянно ищут персональную информацию. Такая информация может быть использована для совершения преступлений, в том числе таких, когда злоумышленник выдаёт себя за того человека, информацию о котором он получил (маршрутизируя активность через чужой адрес). Эта информация может включать: номер телефона, почтовый адрес, дату рождения и иную ценную информацию для похитителей персональных данных. По 1Р-адресу злоумышленник не может напрямую получить всю необходимую информацию. Однако хакер, имеющий доступ к 1Р-адресу, может отследить пользовательского провайдера, а затем, используя фишинго-вую атаку, попытаться убедить интернет-провайдера передать ему персональные данные.

6. Особой категорией выделяют торговлю в «даркнете»: некоторые злоумышленники получают доступ к чужим IP-адресам только с целью последующей их нелегальной продажи.

7. Отслеживание активности: многие работодатели, особенно с появлением удалённой работы, пытаются отслеживать деятельность подчинённого через IP-адрес. Хотя такая практика не может быть технически незаконной, она по-прежнему является вторжением в частную жизнь.

8. Авторские и смежные права: в ряде стран, например, в США, действуют строгие законы, касающиеся авторских прав. Эти законы касаются отслеживания сервисов торрен-тов, связанных с загрузками лицензионной музыки и фильмов. Как только правоохранительные органы получают IP-адрес пользователя, они могут обратиться к интернет-провайдеру и потребовать, чтобы компания предоставила имя и адрес человека [1].

В качестве примера, отражающего уязвимость IP-адресов, был написан небольшой скрипт на языке программирования Python. Программа получает на вход IP-адрес какого-либо пользователя или сайта. В данном случае был выбран IP-адрес Хакасского государственного университета имени Н. Ф. Катано-ва. Полученный IP-адрес направляется в виде json-запроса в библиотеку данных IP-адресов. Ответом на запрос являются различные персональные данные, начиная от статуса активности IP-адреса до его местоположения по географической широте и долготе. Имея данные географических координат, можно на карте указать местоположение полученного на вход IP-адреса. Зная географическую широту и долготу IP-адреса, скрипт формирует HTML-документ с картой, на которой по координатам указывается местонахождение данного IP. Фрагмент работы скрипта (определение локации Хакасского государственного университета им. Н. Ф. Катанова) представлен на рисунке.

Каждый раз, когда вы посещаете веб-сайт, он потенциально может собрать ещё больше информации о вас. Объединив ваш IP-адрес с другой информацией, полученной из метаданных, файлов cookie, трекеров и тактики снятия отпечатков пальцев браузера, владельцы вебсайтов, маркетологи и рекламодатели могут составить ваш достаточно подробный профиль.

Установка брандмауэра и виртуальной частной сети (VPN) помогает повысить безопасность IP-адреса. Большинство маршрутизаторов имеют встроенные брандмауэры. Дополнительной гарантией является проверка вашим интернет-провайдером [1]. Кроме того, для защиты данных можно использовать криптографические протоколы, такие как TLS (Transport Layer Security). Этот протокол применяется в стеке TCP/IP поверх TCP и позволяет организовать безопасный канал информа-

ционного обмена между узлами на прикладном уровне взаимодействия. Применяемые в этом протоколе инструменты криптографии аналогичны VPN, однако для поддержки TLS не требуется установки специализированного программного обеспечения [5].

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

Фрагмент работы скрипта, написанного на языке Python

Библиографический список

1. VPN Consumer Usage, Adoption, and Shopping Study: 2021 / Security. org Team. URL: https://www.security.org/resources/vpn-consumer-report-annual/ (дата обращения: 21.03.2022).

2. Всё об IP-адресах и о том, как с ними работать / Habr.com: [сайт]. URL: https://habr.com/ru/post/350878/ (дата обращения: 23.03.2022).

3. Используйте VPN с динамическими IP-адресами для анонимности и конфиденциальности / Ru.itopvpn.com: [сайт]. URL: https://ru.itopvpn.com/blog/dinamicheskiy-ip-vpn-1367 (дата обращения: 25.03.2022).

4. Подлесный А. О., Полякова О. С. Новый протокол IPv6 как решение проблемы нехватки IP-адресов в сети Интернет. URL: https://elibrary.ru/download/elibrary_20889679_35934274.pdf (дата обращения: 27.03.2022).

5. IP-сети в безопасности - безопасность в IP-сетях / Инфотех: [сайт]. URL: https://infoteh-msk.ru/news/ip-network-security-security-in-ip-networks/ (дата обращения: 29.03.2022).

© Морковкин Е. А., Новичихина А. А., Замулин И. С., 2022

Как узнать любой IP адрес? |

JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.