Hướng dẫn get ipv6 address python - lấy địa chỉ ipv6 python

Mã nguồn: lib/ipaddress.py Lib/ipaddress.py


>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
7 cung cấp các khả năng để tạo, thao tác và vận hành trên các địa chỉ và mạng IPv4 và IPv6.

Các chức năng và lớp trong mô -đun này giúp xử lý các tác vụ khác nhau liên quan đến địa chỉ IP, bao gồm kiểm tra xem hai máy chủ có trên cùng một mạng con hay không Địa chỉ IP hoặc định nghĩa mạng, v.v.

Đây là tham chiếu API mô -đun đầy đủ để biết tổng quan và giới thiệu, xem phần giới thiệu về mô -đun iPaddress.An introduction to the ipaddress module.

Mới trong phiên bản 3.3.

Các chức năng nhà máy tiện lợi

Mô -đun

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
7 cung cấp các chức năng của nhà máy để tạo thuận tiện các địa chỉ IP, mạng và giao diện:

ipaddress.ip_address (địa chỉ) ¶ip_address(address)

Trả về một đối tượng

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9 hoặc
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
0 tùy thuộc vào địa chỉ IP được truyền dưới dạng đối số. Địa chỉ IPv4 hoặc IPv6 có thể được cung cấp; Số nguyên nhỏ hơn
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
1 sẽ được coi là IPv4 theo mặc định. Một
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 được nêu ra nếu địa chỉ không đại diện cho địa chỉ IPv4 hoặc IPv6 hợp lệ.

>>> ipaddress.ip_address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.ip_address('2001:db8::')
IPv6Address('2001:db8::')

ipaddress.ip_network (địa chỉ, nghiêm ngặt = true) ¶ip_network(address, strict=True)

Trả về một đối tượng

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3 hoặc
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
4 tùy thuộc vào địa chỉ IP được truyền dưới dạng đối số. Địa chỉ là một chuỗi hoặc số nguyên đại diện cho mạng IP. Mạng IPv4 hoặc IPv6 có thể được cung cấp; Số nguyên nhỏ hơn
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
1 sẽ được coi là IPv4 theo mặc định. nghiêm ngặt được chuyển cho hàm tạo
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3 hoặc
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
4. Một
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 được nêu ra nếu địa chỉ không đại diện cho địa chỉ IPv4 hoặc IPv6 hợp lệ hoặc nếu mạng có các bit máy chủ được đặt.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')

ipaddress.ip_interface (địa chỉ) ¶ip_interface(address)

Trả về một đối tượng

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
9 hoặc
>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
0 tùy thuộc vào địa chỉ IP được truyền dưới dạng đối số. Địa chỉ là một chuỗi hoặc số nguyên đại diện cho địa chỉ IP. Địa chỉ IPv4 hoặc IPv6 có thể được cung cấp; Số nguyên nhỏ hơn
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
1 sẽ được coi là IPv4 theo mặc định. Một
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 được nêu ra nếu địa chỉ không đại diện cho địa chỉ IPv4 hoặc IPv6 hợp lệ.

Một nhược điểm của các chức năng tiện lợi này là nhu cầu xử lý cả định dạng IPv4 và IPv6 có nghĩa là thông báo lỗi cung cấp thông tin tối thiểu về lỗi chính xác, vì các chức năng don don biết liệu định dạng IPv4 hay IPv6 có được dự định hay không. Báo cáo lỗi chi tiết hơn có thể được lấy bằng cách gọi trực tiếp các trình xây dựng lớp cụ thể phiên bản thích hợp.

Các địa chỉ IP¶

Địa chỉ đối tượng lor

Các đối tượng

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9 và
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
0 chia sẻ rất nhiều thuộc tính phổ biến. Một số thuộc tính chỉ có ý nghĩa đối với các địa chỉ IPv6 cũng được triển khai bởi các đối tượng
>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9, để dễ dàng ghi mã xử lý chính xác cả hai phiên bản IP. Các đối tượng địa chỉ có thể băm, vì vậy chúng có thể được sử dụng làm khóa trong từ điển.hashable, so they can be used as keys in dictionaries.

classipaddress.ipv4address (địa chỉ) ¶ ipaddress.IPv4Address(address)

Xây dựng một địa chỉ IPv4. Một

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
6 được nâng lên nếu địa chỉ không phải là địa chỉ IPv4 hợp lệ.

Sau đây tạo thành một địa chỉ IPv4 hợp lệ:

  1. Một chuỗi trong ký hiệu DOT thập phân, bao gồm bốn số nguyên thập phân trong phạm vi bao gồm 0 Ném255, được phân tách bằng các chấm (ví dụ:

    >>> format(ipaddress.IPv4Address('192.168.0.1'))
    '192.168.0.1'
    >>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
    '0b11000000101010000000000000000001'
    >>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
    '2001:db8::1000'
    >>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
    '2001_0DB8_0000_0000_0000_0000_0000_1000'
    >>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
    '0x2001_0db8_0000_0000_0000_0000_0000_1000'
    
    7). Mỗi số nguyên đại diện cho một octet (byte) trong địa chỉ. Các số 0 hàng đầu không được dung thứ để ngăn chặn sự nhầm lẫn với ký hiệu bát phân.

  2. Một số nguyên vừa vặn thành 32 bit.

  3. Một số nguyên được đóng gói vào một đối tượng

    >>> format(ipaddress.IPv4Address('192.168.0.1'))
    '192.168.0.1'
    >>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
    '0b11000000101010000000000000000001'
    >>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
    '2001:db8::1000'
    >>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
    '2001_0DB8_0000_0000_0000_0000_0000_1000'
    >>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
    '0x2001_0db8_0000_0000_0000_0000_0000_1000'
    
    8 có độ dài 4 (đầu tiên là octet đáng kể nhất).

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')

Thay đổi trong phiên bản 3.8: Các số không hàng đầu được dung thứ, ngay cả trong các trường hợp mơ hồ trông giống như ký hiệu bát phân.Leading zeros are tolerated, even in ambiguous cases that look like octal notation.

Thay đổi trong phiên bản 3.10: Các số không hàng đầu không còn được dung nạp và được coi là một lỗi. Các chuỗi địa chỉ IPv4 hiện được phân tích nghiêm ngặt như glibc

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
9.Leading zeros are no longer tolerated and are treated as an error. IPv4 address strings are now parsed as strict as glibc
>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
9.

Thay đổi trong phiên bản 3.9.5: Thay đổi trên cũng được bao gồm trong Python 3.9 bắt đầu với phiên bản 3.9.5.The above change was also included in Python 3.9 starting with version 3.9.5.

Đã thay đổi trong phiên bản 3.8.12: Thay đổi trên cũng được bao gồm trong Python 3.8 bắt đầu với phiên bản 3.8.12.The above change was also included in Python 3.8 starting with version 3.8.12.

phiên bản¶

Số phiên bản thích hợp:

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
0 cho IPv4,
>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
1 cho IPv6.

max_prefixlen¶

Tổng số bit trong biểu diễn địa chỉ cho phiên bản này:

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
2 cho IPv4,
>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
3 cho IPv6.

Tiền tố xác định số lượng bit hàng đầu trong một địa chỉ được so sánh để xác định xem một địa chỉ có phải là một phần của mạng hay không.

nén Exploded Explod đãexploded

Các biểu diễn chuỗi trong ký hiệu thập phân chấm. Các số 0 hàng đầu không bao giờ được bao gồm trong đại diện.

Vì IPv4 không xác định ký hiệu tốc ký cho các địa chỉ có octet được đặt thành 0, hai thuộc tính này luôn giống như

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
4 cho các địa chỉ IPv4. Việc hiển thị các thuộc tính này giúp ghi mã hiển thị dễ dàng hơn có thể xử lý cả địa chỉ IPv4 và IPv6.

đóng gói

Biểu diễn nhị phân của địa chỉ này - một đối tượng

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
8 có độ dài thích hợp (đầu tiên là octet đáng kể nhất). Đây là 4 byte cho IPv4 và 16 byte cho IPv6.

Reverse_pulum¶

Tên của bản ghi PTR DNS ngược cho địa chỉ IP, ví dụ:

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'

Đây là tên có thể được sử dụng để thực hiện tra cứu PTR, chứ không phải chính tên máy chủ được giải quyết.

Mới trong phiên bản 3.5.

is_multicast¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu địa chỉ được dành riêng cho sử dụng phát đa hướng. Xem RFC 3171 (cho IPv4) hoặc RFC 2373 (cho IPv6).RFC 3171 (for IPv4) or RFC 2373 (for IPv6).

là riêng tư¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu địa chỉ được phân bổ cho các mạng riêng. Xem IANA-IPV4-Special-Registry (cho IPv4) hoặc IANA-IPV6-Special-Registry (cho IPv6).

is_global¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu địa chỉ được phân bổ cho các mạng công cộng. Xem IANA-IPV4-Special-Registry (cho IPv4) hoặc IANA-IPV6-Special-Registry (cho IPv6).

Mới trong phiên bản 3.4.

is_unspecified¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 nếu địa chỉ không xác định. Xem RFC 5735 (cho IPv4) hoặc RFC 2373 (cho IPv6).RFC 5735 (for IPv4) or RFC 2373 (for IPv6).

is_reserved¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 nếu địa chỉ khác được bảo lưu IETF.

is_loopback¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu đây là địa chỉ loopback. Xem RFC 3330 (cho IPv4) hoặc RFC 2373 (cho IPv6).RFC 3330 (for IPv4) or RFC 2373 (for IPv6).

is_link_local¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu địa chỉ được dành riêng cho việc sử dụng liên kết-local. Xem RFC 3927.RFC 3927.

IPv4Address .__ Định dạng __ (FMT) ¶__format__(fmt)

Trả về một biểu diễn chuỗi của địa chỉ IP, được điều khiển bởi một chuỗi định dạng rõ ràng. FMT có thể là một trong những điều sau đây:

>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
3, tùy chọn mặc định, tương đương với
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
4,
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
5 cho chuỗi nhị phân không được đệm,
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
6 hoặc
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
7 cho biểu diễn hexadcal chữ hoa hoặc chữ thường, hoặc
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
8
>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1
7 cho IPv6. Đối với các biểu diễn nhị phân và thập lục phân, công cụ xác định biểu mẫu
>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True
1 và tùy chọn nhóm
>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True
2 có sẵn.
>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True
3 được sử dụng bởi
>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True
4,
>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True
5 và F-String.

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'

Mới trong phiên bản 3.9.

classipaddress.ipv6address (địa chỉ) ¶ ipaddress.IPv6Address(address)

Xây dựng một địa chỉ IPv6. Một

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
6 được nâng lên nếu địa chỉ không phải là địa chỉ IPv6 hợp lệ.

Sau đây tạo thành một địa chỉ IPv6 hợp lệ:

  1. Một chuỗi bao gồm tám nhóm bốn chữ số thập lục phân, mỗi nhóm đại diện cho 16 bit. Các nhóm được phân tách bởi các đại kết. Điều này mô tả một ký hiệu phát nổ (lâu dài). Chuỗi cũng có thể được nén (ký hiệu tốc ký) bằng nhiều phương tiện khác nhau. Xem RFC 4291 để biết chi tiết. Ví dụ,

    >>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
    True
    >>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
    False
    >>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
    True
    >>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
    False
    >>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
    True
    
    7 có thể được nén thành
    >>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
    True
    >>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
    False
    >>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
    True
    >>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
    False
    >>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
    True
    
    8.RFC 4291 for details. For example,
    >>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
    True
    >>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
    False
    >>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
    True
    >>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
    False
    >>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
    True
    
    7 can be compressed to
    >>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
    True
    >>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
    False
    >>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
    True
    >>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
    False
    >>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
    True
    
    8.

    Tùy chọn, chuỗi cũng có thể có ID vùng phạm vi, được biểu thị bằng hậu tố

    >>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
    True
    >>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
    False
    >>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
    True
    >>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
    False
    >>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
    True
    
    9. Nếu có, ID phạm vi phải không trống và có thể không chứa
    >>> IPv4Address('127.0.0.2') + 3
    IPv4Address('127.0.0.5')
    >>> IPv4Address('127.0.0.2') - 3
    IPv4Address('126.255.255.255')
    >>> IPv4Address('255.255.255.255') + 1
    Traceback (most recent call last):
      File "", line 1, in 
    ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
    
    0. Xem RFC 4007 để biết chi tiết. Ví dụ:
    >>> IPv4Address('127.0.0.2') + 3
    IPv4Address('127.0.0.5')
    >>> IPv4Address('127.0.0.2') - 3
    IPv4Address('126.255.255.255')
    >>> IPv4Address('255.255.255.255') + 1
    Traceback (most recent call last):
      File "", line 1, in 
    ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
    
    1 có thể xác định địa chỉ
    >>> IPv4Address('127.0.0.2') + 3
    IPv4Address('127.0.0.5')
    >>> IPv4Address('127.0.0.2') - 3
    IPv4Address('126.255.255.255')
    >>> IPv4Address('255.255.255.255') + 1
    Traceback (most recent call last):
      File "", line 1, in 
    ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
    
    2 trên liên kết đầu tiên của nút.RFC 4007 for details. For example,
    >>> IPv4Address('127.0.0.2') + 3
    IPv4Address('127.0.0.5')
    >>> IPv4Address('127.0.0.2') - 3
    IPv4Address('126.255.255.255')
    >>> IPv4Address('255.255.255.255') + 1
    Traceback (most recent call last):
      File "", line 1, in 
    ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
    
    1 might identify address
    >>> IPv4Address('127.0.0.2') + 3
    IPv4Address('127.0.0.5')
    >>> IPv4Address('127.0.0.2') - 3
    IPv4Address('126.255.255.255')
    >>> IPv4Address('255.255.255.255') + 1
    Traceback (most recent call last):
      File "", line 1, in 
    ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
    
    2 on the first link of the node.

  2. Một số nguyên vừa với 128 bit.

  3. Một số nguyên được đóng gói vào một đối tượng

    >>> format(ipaddress.IPv4Address('192.168.0.1'))
    '192.168.0.1'
    >>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
    '0b11000000101010000000000000000001'
    >>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
    '2001:db8::1000'
    >>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
    '2001_0DB8_0000_0000_0000_0000_0000_1000'
    >>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
    '0x2001_0db8_0000_0000_0000_0000_0000_1000'
    
    8 có độ dài 16, lớn.

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')

nén¶

Hình thức ngắn của biểu diễn địa chỉ, với các số 0 hàng đầu trong các nhóm bị bỏ qua và chuỗi các nhóm dài nhất bao gồm hoàn toàn các số 0 bị sụp đổ thành một nhóm trống duy nhất.

Đây cũng là giá trị được trả về bởi

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
4 cho các địa chỉ IPv6.

phát nổ

Hình thức dài của biểu diễn địa chỉ, với tất cả các số 0 và nhóm hàng đầu bao gồm hoàn toàn các số 0 bao gồm.

Đối với các thuộc tính và phương thức sau, hãy xem tài liệu tương ứng của lớp

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9:

Đóng gói Reverse_Pulum¶ Phiên bản Max_PrefixLen¶ IS_Multicast¶ is_private¶ is_global¶ is_unspecified¶ is_reserved¶ is_loopback¶ is_link_local¶reverse_pointerversionmax_prefixlenis_multicastis_privateis_globalis_unspecifiedis_reservedis_loopbackis_link_local

Mới trong phiên bản 3.4: IS_Globalis_global

is_site_local¶

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu địa chỉ được dành riêng cho việc sử dụng địa điểm địa điểm. Lưu ý rằng không gian địa chỉ địa điểm trang web đã được RFC 3879. sử dụng
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
7 để kiểm tra xem địa chỉ này có nằm trong không gian của các địa chỉ địa phương duy nhất được định nghĩa bởi RFC 4193 hay không.RFC 3879. Use
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
7 to test if this address is in the space of unique local addresses as defined by RFC 4193.

ipv4_mapped¶

Đối với các địa chỉ dường như là địa chỉ được ánh xạ IPv4 (bắt đầu bằng

>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
8), thuộc tính này sẽ báo cáo địa chỉ IPv4 nhúng. Đối với bất kỳ địa chỉ nào khác, tài sản này sẽ là
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.

scope_id¶

Đối với các địa chỉ phạm vi theo định nghĩa của RFC 4007, thuộc tính này xác định vùng cụ thể của phạm vi địa chỉ mà địa chỉ thuộc về, dưới dạng chuỗi. Khi không có vùng phạm vi nào được chỉ định, thuộc tính này sẽ là

>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.RFC 4007, this property identifies the particular zone of the address’s scope that the address belongs to, as a string. When no scope zone is specified, this property will be
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.

SixtoFour

Đối với các địa chỉ dường như là 6to4 địa chỉ (bắt đầu với

>>> list(ip_network('192.0.2.0/29').hosts())  
[IPv4Address('192.0.2.1'), IPv4Address('192.0.2.2'),
 IPv4Address('192.0.2.3'), IPv4Address('192.0.2.4'),
 IPv4Address('192.0.2.5'), IPv4Address('192.0.2.6')]
>>> list(ip_network('192.0.2.0/31').hosts())
[IPv4Address('192.0.2.0'), IPv4Address('192.0.2.1')]
>>> list(ip_network('192.0.2.1/32').hosts())
[IPv4Address('192.0.2.1')]
1) theo định nghĩa của RFC 3056, thuộc tính này sẽ báo cáo địa chỉ IPv4 nhúng. Đối với bất kỳ địa chỉ nào khác, tài sản này sẽ là
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.RFC 3056, this property will report the embedded IPv4 address. For any other address, this property will be
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.

teredo¶

Đối với các địa chỉ dường như là địa chỉ Teredo (bắt đầu bằng

>>> list(ip_network('192.0.2.0/29').hosts())  
[IPv4Address('192.0.2.1'), IPv4Address('192.0.2.2'),
 IPv4Address('192.0.2.3'), IPv4Address('192.0.2.4'),
 IPv4Address('192.0.2.5'), IPv4Address('192.0.2.6')]
>>> list(ip_network('192.0.2.0/31').hosts())
[IPv4Address('192.0.2.0'), IPv4Address('192.0.2.1')]
>>> list(ip_network('192.0.2.1/32').hosts())
[IPv4Address('192.0.2.1')]
3) theo định nghĩa của RFC 4380, thuộc tính này sẽ báo cáo cặp địa chỉ IP
>>> list(ip_network('192.0.2.0/29').hosts())  
[IPv4Address('192.0.2.1'), IPv4Address('192.0.2.2'),
 IPv4Address('192.0.2.3'), IPv4Address('192.0.2.4'),
 IPv4Address('192.0.2.5'), IPv4Address('192.0.2.6')]
>>> list(ip_network('192.0.2.0/31').hosts())
[IPv4Address('192.0.2.0'), IPv4Address('192.0.2.1')]
>>> list(ip_network('192.0.2.1/32').hosts())
[IPv4Address('192.0.2.1')]
4 nhúng. Đối với bất kỳ địa chỉ nào khác, tài sản này sẽ là
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.RFC 4380, this property will report the embedded
>>> list(ip_network('192.0.2.0/29').hosts())  
[IPv4Address('192.0.2.1'), IPv4Address('192.0.2.2'),
 IPv4Address('192.0.2.3'), IPv4Address('192.0.2.4'),
 IPv4Address('192.0.2.5'), IPv4Address('192.0.2.6')]
>>> list(ip_network('192.0.2.0/31').hosts())
[IPv4Address('192.0.2.0'), IPv4Address('192.0.2.1')]
>>> list(ip_network('192.0.2.1/32').hosts())
[IPv4Address('192.0.2.1')]
4 IP address pair. For any other address, this property will be
>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address
9.

IPv6Address .__ Định dạng __ (FMT) ¶__format__(fmt)

Tham khảo tài liệu phương thức tương ứng trong

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9.

Mới trong phiên bản 3.9.

classipaddress.ipv6address (địa chỉ) ¶

Xây dựng một địa chỉ IPv6. Một

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
6 được nâng lên nếu địa chỉ không phải là địa chỉ IPv6 hợp lệ.

>>> str(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> int(ipaddress.IPv4Address('192.168.0.1'))
3232235521
>>> str(ipaddress.IPv6Address('::1'))
'::1'
>>> int(ipaddress.IPv6Address('::1'))
1

Lưu ý rằng các địa chỉ phạm vi IPv6 được chuyển đổi thành số nguyên không có ID vùng phạm vi.

Người điều khiển trong

Đối tượng địa chỉ hỗ trợ một số toán tử. Trừ khi có quy định khác, các toán tử chỉ có thể được áp dụng giữa các đối tượng tương thích (nghĩa là IPv4 với IPv4, IPv6 với IPv6).

Toán tử so sánh¶

Các đối tượng địa chỉ có thể được so sánh với tập hợp các toán tử so sánh thông thường. Cùng một địa chỉ IPv6 với ID vùng phạm vi khác nhau không bằng nhau. Vài ví dụ:

>>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')
True
>>> IPv4Address('127.0.0.2') == IPv4Address('127.0.0.1')
False
>>> IPv4Address('127.0.0.2') != IPv4Address('127.0.0.1')
True
>>> IPv6Address('fe80::1234') == IPv6Address('fe80::1234%1')
False
>>> IPv6Address('fe80::1234%1') != IPv6Address('fe80::1234%2')
True

Người vận hành số học

Số nguyên có thể được thêm vào hoặc trừ khỏi các đối tượng địa chỉ. Vài ví dụ:

>>> IPv4Address('127.0.0.2') + 3
IPv4Address('127.0.0.5')
>>> IPv4Address('127.0.0.2') - 3
IPv4Address('126.255.255.255')
>>> IPv4Address('255.255.255.255') + 1
Traceback (most recent call last):
  File "", line 1, in 
ipaddress.AddressValueError: 4294967296 (>= 2**32) is not permitted as an IPv4 address

Định nghĩa mạng IP

Các đối tượng

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3 và
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
4 cung cấp một cơ chế để xác định và kiểm tra các định nghĩa mạng IP. Một định nghĩa mạng bao gồm một mặt nạ và địa chỉ mạng và như vậy định nghĩa một loạt các địa chỉ IP bằng địa chỉ mạng khi bị che dấu (nhị phân và) với mặt nạ. Ví dụ: định nghĩa mạng với mặt nạ
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
01 và địa chỉ mạng
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
02 bao gồm các địa chỉ IP trong phạm vi bao gồm
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
02 đến
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
04.

Tiền tố, mặt nạ net và mặt nạ chủ

Có một số cách tương đương để chỉ định mặt nạ mạng IP. Tiền tố

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
05 là một ký hiệu biểu thị có bao nhiêu bit bậc cao được đặt trong mặt nạ mạng. Mặt nạ NET là địa chỉ IP với một số bit thứ tự cao được đặt. Do đó, tiền tố
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
06 tương đương với mặt nạ Net
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
01 trong IPv4 hoặc
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
08 trong IPv6. Ngoài ra, mặt nạ chủ là nghịch đảo logic của mặt nạ NET và đôi khi được sử dụng (ví dụ trong danh sách kiểm soát truy cập của Cisco) để biểu thị mặt nạ mạng. Mặt nạ máy chủ tương đương với
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
06 trong IPv4 là
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
10.

Đối tượng mạng

Tất cả các thuộc tính được triển khai bởi các đối tượng địa chỉ cũng được triển khai bởi các đối tượng mạng. Ngoài ra, các đối tượng mạng thực hiện các thuộc tính bổ sung. Tất cả những điều này là phổ biến giữa

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3 và
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
4, vì vậy để tránh trùng lặp, chúng chỉ được ghi lại cho
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3. Các đối tượng mạng có thể băm, vì vậy chúng có thể được sử dụng làm khóa trong từ điển.hashable, so they can be used as keys in dictionaries.

classipaddress.ipv4network (địa chỉ, nghiêm ngặt = true) ¶ipaddress.IPv4Network(address, strict=True)

Xây dựng một định nghĩa mạng IPv4. Địa chỉ có thể là một trong những điều sau đây:

  1. Một chuỗi bao gồm một địa chỉ IP và mặt nạ tùy chọn, được phân tách bằng một dấu gạch chéo (

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    14). Địa chỉ IP là địa chỉ mạng và mặt nạ có thể là một số duy nhất, có nghĩa là nó có tiền tố hoặc biểu diễn chuỗi của địa chỉ IPv4. Nếu nó là cái sau, mặt nạ được hiểu là mặt nạ mạng nếu nó bắt đầu bằng trường khác không, hoặc là mặt nạ máy chủ nếu nó bắt đầu với trường không một mặt nạ. Nếu không có mặt nạ được cung cấp, nó được coi là
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    15.

    Ví dụ: các thông số kỹ thuật địa chỉ sau đây là tương đương:

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    16,
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    17 và
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    18.

  2. Một số nguyên vừa vặn thành 32 bit. Điều này tương đương với một mạng địa chỉ đơn, với địa chỉ mạng là địa chỉ và mặt nạ là

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    15.

  3. Một số nguyên được đóng gói vào một đối tượng

    >>> format(ipaddress.IPv4Address('192.168.0.1'))
    '192.168.0.1'
    >>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
    '0b11000000101010000000000000000001'
    >>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
    '2001:db8::1000'
    >>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
    '2001_0DB8_0000_0000_0000_0000_0000_1000'
    >>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
    '0x2001_0db8_0000_0000_0000_0000_0000_1000'
    
    8 có độ dài 4, lớn. Việc giải thích tương tự như một địa chỉ số nguyên.

  4. Một phần hai của mô tả địa chỉ và netmask, trong đó mô tả địa chỉ là một chuỗi, số nguyên 32 bit, số nguyên được đóng gói 4 byte hoặc đối tượng IPv4Address hiện có; và NetMask là một số nguyên đại diện cho độ dài tiền tố (ví dụ:

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    21) hoặc một chuỗi đại diện cho mặt nạ tiền tố (ví dụ:
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    01).

Một

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
6 được nâng lên nếu địa chỉ không phải là địa chỉ IPv4 hợp lệ. Một
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
24 được nâng lên nếu mặt nạ không có giá trị đối với địa chỉ IPv4.

Nếu nghiêm ngặt là

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 và các bit máy chủ được đặt trong địa chỉ được cung cấp, thì
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 sẽ được nâng lên. Mặt khác, các bit máy chủ được che ra để xác định địa chỉ mạng thích hợp.

Trừ khi có quy định khác, tất cả các phương thức mạng chấp nhận các đối tượng mạng/địa chỉ khác sẽ tăng

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
27 nếu phiên bản IP của đối số không tương thích với
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
28.

Đã thay đổi trong phiên bản 3.5: Đã thêm biểu mẫu hai tuple cho tham số Constructor địa chỉ.Added the two-tuple form for the address constructor parameter.

Phiên bản Max_Prefixlen¶max_prefixlen

Tham khảo tài liệu thuộc tính tương ứng trong

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9.

is_multicast¶ is_private¶ is_unspecified¶ is_reserved¶ is_loopback¶ is_link_local¶is_privateis_unspecifiedis_reservedis_loopbackis_link_local

Các thuộc tính này đúng với toàn bộ mạng nếu chúng đúng với cả địa chỉ mạng và địa chỉ phát sóng.

địa chỉ mạng¶

Địa chỉ mạng cho mạng. Địa chỉ mạng và độ dài tiền tố cùng nhau xác định duy nhất một mạng.

phát sóng_address¶

Địa chỉ phát sóng cho mạng. Các gói được gửi đến địa chỉ phát sóng nên được nhận bởi mỗi máy chủ trên mạng.

hostmask¶

Mặt nạ chủ, như một đối tượng

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9.

Netmask¶

Mặt nạ Net, như một đối tượng

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9.

với_prefixlen¶ nén Exploded¶compressedexploded

Một biểu diễn chuỗi của mạng, với mặt nạ trong ký hiệu tiền tố.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
32 và
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
33 luôn giống như
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
34.
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
35 sử dụng biểu mẫu bùng nổ địa chỉ mạng.

với_netmask¶

Một biểu diễn chuỗi của mạng, với mặt nạ trong ký hiệu mặt nạ.

với_hostmask¶

Một biểu diễn chuỗi của mạng, với mặt nạ trong ký hiệu mặt nạ chủ.

num_addresses¶

Tổng số địa chỉ trong mạng.

PrefixLen¶

Độ dài của tiền tố mạng, tính bằng bit.

máy chủ () ¶()

Trả về một trình lặp qua các máy chủ có thể sử dụng trong mạng. Các máy chủ có thể sử dụng là tất cả các địa chỉ IP thuộc về mạng, ngoại trừ chính địa chỉ mạng và địa chỉ phát sóng mạng. Đối với các mạng có chiều dài mặt nạ là 31, địa chỉ mạng và địa chỉ phát sóng mạng cũng được bao gồm trong kết quả. Các mạng có mặt nạ 32 sẽ trả về danh sách chứa địa chỉ máy chủ duy nhất.

>>> list(ip_network('192.0.2.0/29').hosts())  
[IPv4Address('192.0.2.1'), IPv4Address('192.0.2.2'),
 IPv4Address('192.0.2.3'), IPv4Address('192.0.2.4'),
 IPv4Address('192.0.2.5'), IPv4Address('192.0.2.6')]
>>> list(ip_network('192.0.2.0/31').hosts())
[IPv4Address('192.0.2.0'), IPv4Address('192.0.2.1')]
>>> list(ip_network('192.0.2.1/32').hosts())
[IPv4Address('192.0.2.1')]

sự chồng chéo (khác) ¶(other)

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 Nếu mạng này được chứa một phần hoặc hoàn toàn trong khác hoặc khác hoàn toàn được chứa trong mạng này.

Địa chỉ_exclude (mạng) ¶(network)

Tính toán các định nghĩa mạng do loại bỏ mạng đã cho ra khỏi mạng này. Trả về một trình lặp lại của các đối tượng mạng. Tăng

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 nếu mạng không hoàn toàn chứa trong mạng này.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
0

Subnets (prefixlen_diff = 1, new_prefix = none) ¶(prefixlen_diff=1, new_prefix=None)

Các mạng con tham gia để tạo định nghĩa mạng hiện tại, tùy thuộc vào các giá trị đối số. prefixlen_diff là số lượng tiền tố của chúng tôi phải được tăng lên. new_prefix là tiền tố mới mong muốn của các mạng con; Nó phải lớn hơn tiền tố của chúng tôi. Một và chỉ một trong số prefixlen_diff và new_prefix phải được đặt. Trả về một trình lặp lại của các đối tượng mạng.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
1

Supernet (prefixlen_diff = 1, new_prefix = none) ¶(prefixlen_diff=1, new_prefix=None)

Supernet chứa định nghĩa mạng này, tùy thuộc vào các giá trị đối số. prefixlen_diff là số lượng thời gian tiền tố của chúng tôi phải được giảm bởi. new_prefix là tiền tố mới mong muốn của Supernet; Nó phải nhỏ hơn tiền tố của chúng tôi. Một và chỉ một trong số prefixlen_diff và new_prefix phải được đặt. Trả về một đối tượng mạng duy nhất.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
2

subnet_of (khác) ¶(other)

Trả về

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 nếu mạng này là mạng con của khác.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
3

Mới trong phiên bản 3.7.

Supernet_of (khác) ¶(other)

Trả về

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 nếu mạng này là siêu mạng khác.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
4

Mới trong phiên bản 3.7.

Supernet_of (khác) ¶(other)

Trả về

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 nếu mạng này là siêu mạng khác.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
5

compare_networks (khác) ¶It uses the same ordering and comparison algorithm as “<”, “==”, and “>”

So sánh mạng này với khác. Trong so sánh này, chỉ có các địa chỉ mạng được xem xét; Bit chủ aren. Trả về
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
40,
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
41 hoặc
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
42.
ipaddress.IPv6Network(address, strict=True)

Đã không dùng

  1. classipaddress.ipv6network (địa chỉ, nghiêm ngặt = true) ¶

    Xây dựng một định nghĩa mạng IPv6. Địa chỉ có thể là một trong những điều sau đây:

  2. Một chuỗi bao gồm một địa chỉ IP và độ dài tiền tố tùy chọn, được phân tách bằng một dấu gạch chéo (

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    14). Địa chỉ IP là địa chỉ mạng và độ dài tiền tố phải là một số duy nhất, tiền tố. Nếu không có độ dài tiền tố được cung cấp, thì nó được coi là
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    44.

  3. Lưu ý rằng các netmasks hiện đang mở rộng không được hỗ trợ. Điều đó có nghĩa là

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    45 là một đối số hợp lệ trong khi
    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    46 thì không.

  4. Một số nguyên vừa với 128 bit. Điều này tương đương với một mạng địa chỉ đơn, với địa chỉ mạng là địa chỉ và mặt nạ là

    >>> ipaddress.ip_network('192.168.0.0/28')
    IPv4Network('192.168.0.0/28')
    
    44.

Một số nguyên được đóng gói vào một đối tượng

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
8 có độ dài 16, lớn. Việc giải thích tương tự như một địa chỉ số nguyên.

Một phần hai của mô tả địa chỉ và netmask, trong đó mô tả địa chỉ là một chuỗi, số nguyên 128 bit, số nguyên được đóng gói 16 byte hoặc đối tượng IPv6Address hiện có; và NetMask là một số nguyên đại diện cho độ dài tiền tố.

Một

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
6 được nâng lên nếu địa chỉ không phải là địa chỉ IPv6 hợp lệ. Một
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
24 được nâng lên nếu mặt nạ không có giá trị đối với địa chỉ IPv6.Added the two-tuple form for the address constructor parameter.

Nếu nghiêm ngặt là
>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address('ff02::5678%1')
IPv6Address('ff02::5678%1')
6 và các bit máy chủ được đặt trong địa chỉ được cung cấp, thì
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
2 sẽ được nâng lên. Mặt khác, các bit máy chủ được che ra để xác định địa chỉ mạng thích hợp.
max_prefixlenis_multicastis_privateis_unspecifiedis_reservedis_loopbackis_link_localnetwork_addressbroadcast_addresshostmasknetmaskwith_prefixlencompressedexplodedwith_netmaskwith_hostmasknum_addressesprefixlenhosts()

Đã thay đổi trong phiên bản 3.5: Đã thêm biểu mẫu hai tuple cho tham số Constructor địa chỉ.

chồng chéo (khác) ¶ address_exclude (mạng) SubSets (prefixlen_diff = 1, new_prefix = none) ¶ Supernet (prefixlen_diff = 1, new_prefix = none)(other)address_exclude(network)subnets(prefixlen_diff=1, new_prefix=None)supernet(prefixlen_diff=1, new_prefix=None)subnet_of(other)supernet_of(other)compare_networks(other)

Tham khảo tài liệu thuộc tính tương ứng trong

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3.

is_site_local¶

Các thuộc tính này đúng với toàn bộ mạng nếu nó đúng với cả địa chỉ mạng và địa chỉ phát sóng.

Người điều khiển trong

Đối tượng mạng hỗ trợ một số nhà khai thác. Trừ khi có quy định khác, các toán tử chỉ có thể được áp dụng giữa các đối tượng tương thích (nghĩa là IPv4 với IPv4, IPv6 với IPv6).

Người vận hành logic

Các đối tượng mạng có thể được so sánh với tập hợp các toán tử logic thông thường. Các đối tượng mạng được đặt hàng đầu tiên theo địa chỉ mạng, sau đó bằng mặt nạ.

Sự lặp lại

Các đối tượng mạng có thể được lặp lại để liệt kê tất cả các địa chỉ thuộc về mạng. Đối với phép lặp, tất cả các máy chủ được trả lại, bao gồm các máy chủ không thể sử dụng (đối với máy chủ có thể sử dụng, sử dụng phương thức

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
54). Một ví dụ:

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
6

Mạng như các thùng chứa địa chỉ

Đối tượng mạng có thể hoạt động như các thùng chứa địa chỉ. Vài ví dụ:

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
7

Đối tượng giao diện

Các đối tượng giao diện có thể băm, vì vậy chúng có thể được sử dụng làm khóa trong từ điển.hashable, so they can be used as keys in dictionaries.

classipaddress.ipv4interface (địa chỉ) ¶ipaddress.IPv4Interface(address)

Xây dựng giao diện IPv4. Ý nghĩa của địa chỉ là trong hàm tạo của

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3, ngoại trừ các địa chỉ máy chủ tùy ý luôn được chấp nhận.

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
9 là một lớp con của
>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9, vì vậy nó kế thừa tất cả các thuộc tính từ lớp đó. Ngoài ra, các thuộc tính sau có sẵn:

ip¶

Địa chỉ (

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9) mà không có thông tin mạng.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
8

mạng¶

Mạng (

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3) giao diện này thuộc về.

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
9

với_prefixlen¶

Một biểu diễn chuỗi của giao diện với mặt nạ trong ký hiệu tiền tố.

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
0

với_netmask¶

Biểu diễn chuỗi của giao diện với mạng dưới dạng mặt nạ mạng.

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
1

với_hostmask¶

Biểu diễn chuỗi của giao diện với mạng dưới dạng mặt nạ máy chủ.

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
2

classipaddress.ipv6interface (địa chỉ) ¶ ipaddress.IPv6Interface(address)

Xây dựng giao diện IPv6. Ý nghĩa của địa chỉ là trong hàm tạo của

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
4, ngoại trừ các địa chỉ máy chủ tùy ý luôn được chấp nhận.

>>> format(ipaddress.IPv4Address('192.168.0.1'))
'192.168.0.1'
>>> '{:#b}'.format(ipaddress.IPv4Address('192.168.0.1'))
'0b11000000101010000000000000000001'
>>> f'{ipaddress.IPv6Address("2001:db8::1000"):s}'
'2001:db8::1000'
>>> format(ipaddress.IPv6Address('2001:db8::1000'), '_X')
'2001_0DB8_0000_0000_0000_0000_0000_1000'
>>> '{:#_n}'.format(ipaddress.IPv6Address('2001:db8::1000'))
'0x2001_0db8_0000_0000_0000_0000_0000_1000'
0 là một lớp con của
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
0, vì vậy nó kế thừa tất cả các thuộc tính từ lớp đó. Ngoài ra, các thuộc tính sau có sẵn:

IP¶ Network¶ with_prefixlen¶ with_netmask¶ with_hostmask¶networkwith_prefixlenwith_netmaskwith_hostmask

Tham khảo tài liệu thuộc tính tương ứng trong

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
9.

Người điều khiển trong

Đối tượng mạng hỗ trợ một số nhà khai thác. Trừ khi có quy định khác, các toán tử chỉ có thể được áp dụng giữa các đối tượng tương thích (nghĩa là IPv4 với IPv4, IPv6 với IPv6).

Người vận hành logic

Các đối tượng mạng có thể được so sánh với tập hợp các toán tử logic thông thường. Các đối tượng mạng được đặt hàng đầu tiên theo địa chỉ mạng, sau đó bằng mặt nạ.

Sự lặp lại

Các đối tượng mạng có thể được lặp lại để liệt kê tất cả các địa chỉ thuộc về mạng. Đối với phép lặp, tất cả các máy chủ được trả lại, bao gồm các máy chủ không thể sử dụng (đối với máy chủ có thể sử dụng, sử dụng phương thức

>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
54). Một ví dụ:

Mạng như các thùng chứa địa chỉ

Đối tượng mạng có thể hoạt động như các thùng chứa địa chỉ. Vài ví dụ:

Đối tượng giao diệnv4_int_to_packed(address)

Các đối tượng giao diện có thể băm, vì vậy chúng có thể được sử dụng làm khóa trong từ điển.

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
3

classipaddress.ipv4interface (địa chỉ) ¶v6_int_to_packed(address)

Xây dựng giao diện IPv4. Ý nghĩa của địa chỉ là trong hàm tạo của

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3, ngoại trừ các địa chỉ máy chủ tùy ý luôn được chấp nhận.

>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
9 là một lớp con của
>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9, vì vậy nó kế thừa tất cả các thuộc tính từ lớp đó. Ngoài ra, các thuộc tính sau có sẵn:
summarize_address_range(first, last)

ip¶

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
4

Địa chỉ (
>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
9) mà không có thông tin mạng.
collapse_addresses(addresses)

mạng¶

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
5

Mạng (
>>> ipaddress.ip_address("127.0.0.1").reverse_pointer
'1.0.0.127.in-addr.arpa'
>>> ipaddress.ip_address("2001:db8::1").reverse_pointer
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
3) giao diện này thuộc về.
get_mixed_type_key(obj)

Trả về một khóa phù hợp để sắp xếp giữa các mạng và địa chỉ.Địa chỉ và đối tượng mạng không thể sắp xếp theo mặc định;Họ khác nhau về cơ bản, vì vậy biểu hiện:

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
6

Doesn có ý nghĩa.Tuy nhiên, có một số lần, nơi bạn có thể muốn có

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3232235521)
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')
7 sắp xếp những thứ này.Nếu bạn cần làm điều này, bạn có thể sử dụng chức năng này làm đối số chính cho
>>> ipaddress.ip_network('192.168.0.0/28')
IPv4Network('192.168.0.0/28')
82.

OBJ là một mạng hoặc đối tượng địa chỉ.

Ngoại lệ tùy chỉnh Or

Để hỗ trợ báo cáo lỗi cụ thể hơn từ các trình xây dựng lớp, mô -đun xác định các ngoại lệ sau:

ExceptionIpAddress.AddressValueError (valueError) ¶ ipaddress.AddressValueError(ValueError)

Bất kỳ lỗi giá trị liên quan đến địa chỉ.

ExceptionIpAddress.NetmaskValueError (valueError) ¶ ipaddress.NetmaskValueError(ValueError)

Bất kỳ lỗi giá trị liên quan đến mặt nạ mạng.