Xác thực địa chỉ IP trong Python
Trong bài viết này, chúng ta sẽ thảo luận về ba cách khác nhau để kiểm tra xem một chuỗi có phải là Địa chỉ IP hợp lệ trong Python hay không Show Mục lục
Kiểm tra xem Chuỗi có phải là Địa chỉ IP hợp lệ hay không bằng RegexTrong Python, mô-đun regex cung cấp hàm thành viên search(), chấp nhận một chuỗi và mẫu biểu thức chính quy làm đối số. Sau đó, nó tìm kiếm các chuỗi con trong chuỗi đã cho dựa trên mẫu biểu thức chính quy đó. Nếu mẫu được tìm thấy thì nó trả về một đối tượng Match, nếu không thì trả về Không có. Chúng tôi sẽ sử dụng cùng một biểu thức chính quy. search() với mẫu biểu thức chính quy –> “^(\d{1,3})\. (\d{1,3})\. (\d{1,3})\. (\d{1,3})$”. Mẫu biểu thức chính quy này tìm kiếm chuỗi Địa chỉ IP hợp lệ. Nó xác minh rằng chuỗi chứa bốn số (ba chữ số), được phân tách bằng dấu chấm. Sau đó, chúng ta cần kiểm tra xem mỗi số này có nằm trong phạm vi từ 0 đến 255 không Chúng tôi đã tạo một hàm riêng, sẽ sử dụng mẫu biểu thức chính quy này để kiểm tra xem một chuỗi đã cho có hợp lệ hay không. e import re def valid_IP_Address(sample_str): ''' Returns True if given string is a valid IP Address, else returns False''' result = True match_obj = re.search( r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$", sample_str) if match_obj is None: result = False else: for value in match_obj.groups(): if int(value) > 255: result = False break return result Hãy sử dụng chức năng này với một số chuỗi nhất định để xác minh xem chúng có chứa Địa chỉ IP hợp lệ hay không. Ví dụ, Giả sử chúng ta có một chuỗi; Các địa chỉ IPv4 được biểu diễn theo quy tắc dưới dạng ký hiệu thập phân chấm, bao gồm bốn số thập phân, mỗi số nằm trong khoảng từ 0 đến 255, được phân tách bằng dấu chấm (". "), Ví dụ: 192. 168. 254. 1; . Ví dụ: địa chỉ 192. 168. 254. 01 không hợp lệ Các địa chỉ IPv6 được biểu diễn dưới dạng tám nhóm gồm bốn chữ số thập lục phân, mỗi nhóm biểu thị 16 bit. Các nhóm được phân tách bằng dấu hai chấm (". "). Ví dụ: giả sử địa chỉ là 2001. 0db8. 85a3. 0000. 0000. 8a2e. 0370. 7334 là một địa chỉ hợp lệ. Ngoài ra, chúng ta có thể bỏ một số số 0 đứng đầu trong số bốn chữ số thập lục phân và một số ký tự chữ thường trong địa chỉ thành chữ hoa, vì vậy 2001. db8. 85a3. 0. 0. 8A2E. 0370. 7334 địa chỉ này cũng hợp lệ Tuy nhiên, chúng tôi không thay thế một nhóm liên tiếp có giá trị bằng 0 bằng một nhóm trống duy nhất bằng cách sử dụng hai dấu hai chấm liên tiếp (. ) theo đuổi sự đơn giản. Vì vậy, ví dụ, năm 2001. 0db8. 85a3. 8A2E. 0370. 7334 là địa chỉ IPv6 không hợp lệ. Ngoài ra, thêm các số 0 đứng đầu trong IPv6 cũng không hợp lệ. Địa chỉ 02001. 0db8. 85a3. 0000. 0000. 8a2e. 0370. 7334 không hợp lệ Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
|