Thư viện ổ cắm Python có các tiện ích để xử lý các định dạng địa chỉ IP khác nhau. Ở đây, chúng ta sẽ sử dụng hai trong số chúng. inet_aton[] và inet_ntoa[]
Ngoài ra, bạn có thể kiểm tra các bài viết về lập trình ổ cắm Python
1. Lập trình Socket Python Cách tạo Socket
2. Ổ cắm Python Cách lấy địa chỉ IP của máy cục bộ
3. Python Socket Cách lấy địa chỉ IP của trang web
4. Ổ cắm Python Cách kết nối máy khách TCP với máy chủ
Vì vậy, bây giờ đây là mã hoàn chỉnh
Chuyển đổi địa chỉ IP
con trăn1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nhập ổ cắm
từ binascii nhập hexlify
def ipConversion[].
cho ip_addr in ['127.0.0.1', '192. 168. 0. 1'].
packed_ip_addr = ổ cắm. inet_aton[ip_addr]
unpacked_ip_addr = socket. inet_ntoa[packed_ip_addr]
in["Địa chỉ IP. {} => Đóng gói. {}, Đã giải nén. {} " . định dạng[ip_addr, hexlify[packed_ip_addr], unpacked_ip_addr]]
Chuyển đổi ip[]
Vì vậy, ở trên cùng, chúng tôi đã tạo phương thức ipConversion[], trong đó inet_aton[] và inet_ntoa[] sẽ được sử dụng để chuyển đổi địa chỉ IP. Chúng tôi sẽ sử dụng hai IP mẫu
địa chỉ, 127. 0. 0. 1 và 192. 168. 0. 1
Chạy mã hoàn chỉnh, đây sẽ là kết quả
Làm thế nào nó hoạt động
Trong bài viết này, hai địa chỉ IP đã được chuyển đổi từ dạng chuỗi sang dạng đóng gói 32 bit
định dạng bằng cách sử dụng câu lệnh for-in. Ngoài ra, hàm hexlify Python được gọi từ
mô-đun binascii. Điều này giúp biểu diễn dữ liệu nhị phân ở định dạng thập lục phân
Ngoài ra, bạn có thể xem video hoàn chỉnh cho bài viết này
Cám ơn đã ghé thăm trang web của tôi. Nếu bạn thích bài viết này, vui lòng xem xét hỗ trợ các tác phẩm của tôi trên Patreon
anna
Thư rác, thư rác, trứng và thư rác
Bài đăng. 221
Chủ đề. 71
Đã tham gia. Tháng 12 năm 2017
Danh tiếng. -3
13-Jun-2018, 09. 50 giờ sángChào mọi người,
gặp khó khăn, bên dưới là đầu ra snmpwalk của tôi, cần chuyển đổi chuỗi hex thành địa chỉ IP
[nội tuyến]SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 2. 1 = CHUỖI Lục giác. 17 20 16 00 00 01
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 3. 1 = CHUỖI Lục giác. 17 20 19 00 01 29
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 4. 1 = CHUỖI Lục giác. 17 20 16 00 42 23
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 5. 1 = CHUỖI Lục giác. 17 20 18 00 00 01
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 6. 1 = CHUỖI Lục giác. 17 20 19 00 00 02
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 7. 1 = CHUỖI Lục giác. 17 20 19 00 12 23
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 8. 1 = CHUỖI Lục giác. 17 20 16 00 72 23
SNMPv2-SMI. thực nghiệm. 37. 1. 6. 1. 1. 6. 1. 12. 1 = CHUỖI Lục giác. 17 20 19 00 00 01 [/inline]
đầu ra dự kiến là
Output:
172.16.0.1
172.19.0.129
172.16.4.223
172.18.0.1
172.19.0.2
Hồi đáp
Tìm thấy
Hồi đáp
anna
Thư rác, thư rác, trứng và thư rác
Bài đăng. 221
Chủ đề. 71
Đã tham gia. Tháng 12 năm 2017
Danh tiếng. -3
14-Jun-2018, 06. 53 giờ sángLarz60+ [già hơn và khôn ngoan hơn],
Tôi đang suy nghĩ, chưa bắt đầu, tôi có thể có bất kỳ mô-đun nào để chuyển đổi cái này không?
Trân trọng
anna
Hồi đáp
Tìm thấy
Hồi đáp
ChếtD_EyE
Đà giám mục
Bài đăng. 1.900
Chủ đề. 9
Đã tham gia. Tháng 5 năm 2017
Danh tiếng. 217
Jun-14-2018, 07. 46 AM [Bài đăng này đã được sửa đổi lần cuối. 14-Jun-2018, 07. 46 giờ sáng bởi DeaD_EyE. ]Tôi không hiểu cho đến nay, làm thế nào họ đã mã hóa địa chỉ thành Chuỗi lục giác. Nó không phải là một địa chỉ IPv4 đóng gói
Chỉnh sửa. Ồ, mô hình rất dễ dàng. Sau ly cà phê đầu tiên tôi đã nhận được nó
def hex2ip[hexstr]: """ Can parse strings in this form: 17 20 16 00 00 01 """ hexstr = hexstr.replace[' ', ''] blocks = [''.join[block] for block in zip[*[iter[hexstr]]*3]] blocks = [int[block] for block in blocks] return '.'.join[str[block] for block in blocks]Đó là một chút ma thuật đen bên trong
Gần chết, nhưng quá lười để chết. https. //máy chủ nguồn. thông tin
Tất cả mọi người cùng nhau. Chúng tôi không cần các chính trị gia
Hồi đáp
Trang web Tìm
Hồi đáp