Nhận địa chỉ ipv6 python

chào mọi người. Hôm nay chúng ta sẽ tìm hiểu về module ipaddress trong Python. Vì vậy, không có bất kỳ rắc rối nào nữa, hãy bắt đầu

Địa chỉ IP là gì?

IP là viết tắt của giao thức internet. Nó được sử dụng để xác định một nút trên bất kỳ mạng nào. Vì vậy, bất kỳ thiết bị nào kết nối với internet, cần phải có địa chỉ IP

Có hai phiên bản địa chỉ IP. IPv4 và IPv6. IPv4 hiện đang được sử dụng trong khi IPv6 đang được các nhà cung cấp mạng lớn chấp nhận chậm do thiếu địa chỉ IPv4 so với các thiết bị trên mạng

Để tìm hiểu thêm về địa chỉ IP, hãy xem trang Wiki tại đây

Làm cách nào để sử dụng mô-đun ipaddress trong Python?

Hãy bắt đầu với việc sử dụng mô-đun ipaddress ngay bây giờ. Để đặt địa chỉ máy chủ, chúng tôi sử dụng ipaddress. địa chỉ IP( )

Hàm này tự động xác định phiên bản nào sẽ được sử dụng dựa trên các giá trị được truyền. Nó trả về địa chỉ IPv4 hoặc địa chỉ IPv6

1. Làm cách nào để tạo Địa chỉ IPv4 hợp lệ?

IPv4 xác thực các giá trị trong phạm vi từ 0 đến 255. Số nguyên phù hợp với 32 bit đại diện cho một octet trong địa chỉ. Một số nguyên được đóng gói thành đối tượng byte có độ dài 4

import ipaddress
ipaddress.ip_address('199.138.0.1')

đầu ra

IPv4Address('199.138.0.1')

2. Làm cách nào để tạo Địa chỉ IPv6 hợp lệ?

IPv6 xác thực các giá trị từ phạm vi 0 đến ffff. Một số nguyên phù hợp với 128 bit. Một số nguyên được đóng gói vào một đối tượng byte có độ dài 16

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

đầu ra

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

Làm việc với Địa chỉ IP trong Python bằng mô-đun ipaddress

Địa chỉ IP được kèm theo một bộ quy tắc. Các dải địa chỉ IP được gán các chức năng khác nhau

Ví dụ: 127. 0. 0. 1 là địa chỉ vòng lặp được gán cho mô-đun mạng trên máy tính của bạn. Khi bạn gửi một gói ping đến địa chỉ IP này, về cơ bản bạn đang ping máy tính của chính mình

1. Các chức năng IP cơ bản

Hãy xem cách chúng ta có thể xác minh địa chỉ nào là loopback, multicast, liên kết cục bộ hoặc dành riêng bằng cách sử dụng mô-đun ipaddress trong Python

import ipaddress

ipa = ipaddress.ip_address('199.138.0.1')
print(ipa.is_private) # Checks if address is private
print(ipa.is_global)  # Checks if address is global

#If address is a loopback address
print(ipaddress.ip_address("127.0.0.1").is_loopback) 

#If address is reserved for multiclass use
print(ipaddress.ip_address("229.100.0.23").is_multicast) 

#If address is reserved for link local usage
print(ipaddress.ip_address("169.254.0.100").is_link_local)

#True if the address is otherwise IETF reserved.
print(ipaddress.ip_address("240.10.0.1").is_reserved)

đầu ra

False
True
True
True
True
True

2. Tra cứu IP đảo ngược

Hàm con trỏ đảo ngược yêu cầu DNS giải quyết địa chỉ IP được thêm làm đối số tại đây. Nếu DNS có thể phân giải IP, bạn sẽ nhận được đầu ra với tên được chỉ định

Nếu bạn ping một IP được gán cho một tên miền, bạn có thể sẽ nhận được tên của máy chủ chứa tên miền đó. Tuy nhiên, điều này có thể thay đổi tùy thuộc vào thiết lập tường lửa

ipaddress.ip_address("199.138.0.1").reverse_pointer

đầu ra

'1.0.138.199.in-addr.arpa'

Làm việc với Mạng IP bằng mô-đun ipaddress

Mạng IPv4 và Mạng IPv6 có thể giúp chúng tôi xác định và kiểm tra định nghĩa mạng IP

Chúng tôi có thể nhận mạng IP ở định dạng được yêu cầu mà không cần viết mã tùy chỉnh

  1. Prefix / denotes the number of high-order bits set in the network mask.
  2. 2. Mặt nạ mạng là một địa chỉ IP với một số bit bậc cao được đặt
  3. 3. Hostmask là nghịch đảo logic của netmask và được sử dụng trong danh sách kiểm soát truy cập của Cisco

________số 8

đầu ra

10.0.0.0/16
10.0.0.0/0.0.255.255
10.0.0.0/255.255.0.0

1. Kiểm tra xem địa chỉ IP là IPv4 hay IPv6

địa chỉ IP. Hàm ip_network() được sử dụng để trả về loại mạng của địa chỉ. Nó xác nhận nếu một IP nằm trong mạng IP4 hoặc mạng IP6

IPv4Address('199.138.0.1')
0

đầu ra

IPv4Address('199.138.0.1')
1

2. Xác định máy chủ trên mạng IP

Máy chủ là tất cả các địa chỉ IP thuộc về một mạng ngoại trừ địa chỉ mạng và địa chỉ quảng bá mạng

máy chủ () trả về trình vòng lặp trên các máy chủ có thể sử dụng được trong mạng

Các mạng có độ dài mặt nạ là 31, địa chỉ mạng và địa chỉ quảng bá mạng cũng được bao gồm trong kết quả và Các mạng có độ dài mặt nạ là 32 trả về danh sách trả về của địa chỉ máy chủ duy nhất

IPv4Address('199.138.0.1')
2

đầu ra

IPv4Address('199.138.0.1')
3

3. Xác định địa chỉ quảng bá cho các mạng

Với Broadcast_address, chúng ta có thể yêu cầu máy chủ DNS phản hồi bằng địa chỉ quảng bá trên mạng

IPv4Address('199.138.0.1')
4

đầu ra

IPv4Address('199.138.0.1')
5

4. Xác định chồng chéo mạng IP

Chức năng này cho chúng ta biết rằng nếu một mạng được chứa một phần hoặc toàn bộ trong một mạng khác. Nó trả về true hoặc false

IPv4Address('199.138.0.1')
6

đầu ra

IPv4Address('199.138.0.1')
7

5. Mạng con trên mạng IP

Nó trả về một trình vòng lặp của các đối tượng mạng. tiền tốlen_diff là độ dài tiền tố pf nên được tăng lên, new_prefix là tiền tố mới của mạng con và lớn hơn tiền tố của chúng tôi

IPv4Address('199.138.0.1')
8

đầu ra

IPv4Address('199.138.0.1')
9

6. Tạo siêu mạng với mô-đun ipaddress

Siêu mạng là sự kết hợp của một hoặc nhiều mạng con. Bạn có thể tìm hiểu thêm về siêu mạng tại đây. Với phương thức supernet trong mô-đun ipaddress, bạn có thể tạo mạng con bằng cách chỉ định thông tin theo yêu cầu

  • tiền tốlen_diff là số lượng độ dài tiền tố của chúng tôi sẽ được tăng thêm
  • new_prefix là tiền tố mới mong muốn của các mạng con phải lớn hơn tiền tố của chúng tôi

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

0

đầu ra

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

1

7. Kiểm tra xem một mạng IP có phải là siêu mạng/mạng con của một mạng IP khác không

Trả về true nếu một mạng là mạng con của mạng kia nếu một mạng là siêu mạng của mạng kia. Trả về đúng hoặc sai

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

2

đầu ra

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

3

8. Làm việc với các đối tượng IPv4Interface

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

IPv4Interface kế thừa tất cả các thuộc tính từ IPv4Address vì IPv4Interface là lớp con của IPv4Address

Đây, 199. 167. 1. 6 Địa chỉ IP nằm trong mạng 199. 167. 1. 0/24

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

4

đầu ra

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

5

Chúng ta có thể biểu diễn giao diện mạng theo ký hiệu tiền tố, dưới dạng mặt nạ mạng và mặt nạ máy chủ

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

6

đầu ra

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

7

Hoạt động khác với địa chỉ IP

Bạn có thể kiểm tra cách so sánh địa chỉ IP với địa chỉ khác bằng cách sử dụng toán tử so sánh trong Python. Hãy xem ví dụ dưới đây

import ipaddress
ipaddress.ip_address('2011:cb0::')
ipaddress.ip_address('FFFF:9999:2:FDE:257:0:2FAE:112D')

8

đầu ra

IPv4Address('199.138.0.1')
7

Chúng ta có thể cộng hoặc trừ các số nguyên từ các đối tượng địa chỉ IP

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

0

đầu ra

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

1

Địa chỉ có thể được chuyển đổi thành chuỗi hoặc số nguyên bằng cách sử dụng các hàm tích hợp sẵn str() và int()

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

2

đầu ra

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

3

Địa chỉ IPv6 được chuyển đổi thành chuỗi không có ID vùng

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

4

đầu ra

IPv6Address('2011:cb0::')
IPv6Address('ffff:9999:2:fde:257:0:2fae:112d')

5

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về địa chỉ, mạng và giao diện IPv4 và IPv6. Để biết thêm nội dung như vậy, hãy theo dõi. học tập vui vẻ. 🙂

Làm cách nào để tìm địa chỉ IP trong python?

Cách lấy địa chỉ IP cục bộ bằng Python .
tên máy chủ = ổ cắm. tên máy chủ ()
local_ip = ổ cắm. gethostbyname(tên máy chủ)
in (local_ip)

Làm cách nào để lấy địa chỉ IP làm đầu vào trong python?

Thuật toán .
Nhập mô-đun ổ cắm
Lấy tên máy chủ bằng cách sử dụng ổ cắm. gethostname() và lưu trữ nó trong một biến
Tìm địa chỉ IP bằng cách chuyển tên máy chủ làm đối số cho ổ cắm. gethostbyname() và lưu trữ nó trong một biến

Làm cách nào để lấy địa chỉ IP từ chuỗi trong python?

Hãy để chúng tôi xem cách trích xuất địa chỉ IP từ một tệp bằng Python. .
Nhập mô-đun lại cho biểu thức chính quy
Mở tệp bằng hàm open()
Đọc tất cả các dòng trong tệp và lưu trữ chúng trong danh sách
Khai báo mẫu cho địa chỉ IP. Mẫu regex là

Bạn có thể định vị địa lý một địa chỉ IPv6 không?

Vị trí địa lý IPv6 . Do IPv4 đã được sử dụng trong nhiều năm nên vị trí địa lý của IPv4 rất chính xác nhưng Định vị địa lý của IPv6 vẫn chưa chính xác .