РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1137 of 1245 menu

Тип IpAddr

Тип IpAddr - это перечисление (enum) из модуля std::net, которое представляет IP-адрес. Оно имеет два варианта: V4 для IPv4-адресов и V6 для IPv6-адресов. Тип позволяет работать с IP-адресами обоих стандартов через единый интерфейс, не заботясь о конкретной версии протокола.

Перечисление IpAddr реализует методы is_ipv4, is_ipv6, is_loopback, is_multicast и многие другие, что делает его удобным для проверки свойств адреса. Также тип реализует трейты Display, FromStr и Debug, что позволяет легко создавать и выводить адреса.

Синтаксис

enum IpAddr { V4(Ipv4Addr), V6(Ipv6Addr), }

Создать значение можно через варианты IpAddr::V4 или IpAddr::V6, либо распарсив строку с помощью метода parse.

Пример

Давайте создадим IPv4-адрес и выведем его на экран:

use std::net::{IpAddr, Ipv4Addr}; fn main() { let addr = IpAddr::V4(Ipv4Addr::new(192, 168, 1, 1)); println!("{}", addr); println!("{}", addr.is_ipv4()); println!("{}", addr.is_ipv6()); }

Результат выполнения кода:

192.168.1.1 true false

Пример

Давайте создадим IPv6-адрес и проверим его свойства:

use std::net::{IpAddr, Ipv6Addr}; fn main() { let addr = IpAddr::V6(Ipv6Addr::LOCALHOST); println!("{}", addr); println!("{}", addr.is_loopback()); println!("{}", addr.is_ipv4()); println!("{}", addr.is_ipv6()); }

Результат выполнения кода:

::1 true false true

Пример

Давайте распарсим IP-адрес из строки с помощью метода parse:

use std::net::IpAddr; fn main() { let addr: IpAddr = "127.0.0.1".parse().unwrap(); println!("{}", addr); println!("{}", addr.is_loopback()); }

Результат выполнения кода:

127.0.0.1 true

Пример

Давайте распарсим IPv6-адрес из строки:

use std::net::IpAddr; fn main() { let addr: IpAddr = "::1".parse().unwrap(); println!("{}", addr); println!("{}", addr.is_ipv6()); }

Результат выполнения кода:

::1 true

Смотрите также

  • тип Ipv4Addr,
    который представляет IPv4-адрес
  • тип Ipv6Addr,
    который представляет IPv6-адрес
  • тип SocketAddr,
    который объединяет IP-адрес и номер порта
  • трейт ToSocketAddrs,
    который преобразует значения в список сокет-адресов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить