Hướng dẫn python ip address validation - xác thực địa chỉ ip python

IPv4 vs IPv6

Trước khi chúng tôi đi sâu vào xác thực, hãy để nhanh chóng nói về hai loại địa chỉ IP mà bạn sẽ gặp. Đối với các mục đích của hướng dẫn này, chúng tôi sẽ tập trung vào việc phân tích và sử dụng các địa chỉ IPv4, vì đó vẫn là định dạng được sử dụng và hiểu phổ biến nhất.

Nội dung chính

  • IPv4 vs IPv6
  • Xác thực địa chỉ IP bằng mô -đun iPaddress [] Python
  • Xác thực IP bằng Python và Regex
  • Cách tìm vị trí của người dùng bằng cách sử dụng API định vị địa lý IP của Tóm tắt
  • Bắt đầu với API
  • Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.
  • Ở đây, chúng tôi sử dụng thư viện Python Requests để gửi yêu cầu nhận đến URL API định vị địa lý trừu tượng, bao gồm khóa API của chúng tôi và địa chỉ IP dưới dạng các tham số truy vấn. Khi phản hồi JSON quay trở lại, chúng tôi chỉ cần in nội dung, nhưng trong một ứng dụng thực sự, bạn sẽ truy cập các trường đối tượng phản hồi và sử dụng thông tin trong ứng dụng của bạn.
  • Phản hồi mà AbstractApi gửi [được in khi chúng ta gọi in [phản hồi.Content] trông như thế này:
  • Lưu ý: Xác định thông tin đã được tái cấu trúc.
  • Làm cách nào để xác định vị trí từ địa chỉ IP?
  • Tại sao tôi nên quan tâm đến địa chỉ IP của mình?
  • Làm cách nào để kiểm tra xem IP có hợp lệ hay không hợp lệ trong Python?
  • Làm cách nào để xác thực địa chỉ IP?
  • Làm thế nào để tôi biết nếu IP của tôi là V4 hay V6 Python?
  • Làm thế nào để bạn nhập một địa chỉ IP vào Python?

IPv4

Các địa chỉ IP mà bạn có thể quen thuộc là các địa chỉ phiên bản IPv4. Một địa chỉ IPv4 trông giống như một chuỗi các số bốn phần được phân tách theo các khoảng thời gian:

Mỗi số trong chuỗi bốn phần có thể nằm trong khoảng từ 0 đến 255 và là trường 8 bit đại diện cho một byte của địa chỉ IP. Điều này làm cho IP hoàn chỉnh trở thành không gian địa chỉ 32 bit [4 x 8 bit], cung cấp đủ kết hợp cho 4,3 tỷ địa chỉ duy nhất.

IPv6

IPv6 là một định dạng mới của địa chỉ IP trông hơi khác so với IPv4. Một địa chỉ IPv6 trông như thế này:


3002:0bd6:0000:0000:0000:ee00:0033:6778

Lưu ý rằng nó sử dụng kết hợp các ký tự chữ và số và có gấp đôi số lượng không gian có sẵn mà địa chỉ IPv4 có. Đó là một không gian địa chỉ 128 bit và cho phép các kết hợp địa chỉ độc đáo hơn rất nhiều. Trong khi IPv4 cho phép 4,3 tỷ địa chỉ duy nhất, IPv6 cung cấp đủ không gian cho 2^128 địa chỉ duy nhất. Đó là 1028 lần nhiều địa chỉ như IPv4!

Tại sao chúng ta cần IPv6?

Mặc dù IPv4 được gọi là phiên bản 4 phiên bản 4, đây thực sự là phiên bản đầu tiên của IP từng được tạo và đã xuất hiện kể từ khi phát minh ra Internet. Quay trở lại những ngày đó, các kỹ sư không thể tưởng tượng được rằng 4,3 tỷ địa chỉ độc đáo sẽ không đủ để xử lý nhu cầu của chúng tôi nhưng ở đây chúng tôi vào năm 2022 với khoảng 4,29 tỷ địa chỉ đã được sử dụng bởi nhiều điện thoại thông minh, máy tính xách tay và máy tính bảng khác nhau.

IPv6 cung cấp đủ không gian mà về mặt lý thuyết chúng ta không bao giờ chạy ra khỏi không gian cho các địa chỉ mới.

Trong hướng dẫn này, chúng tôi sẽ đề cập đến một vài cách dễ nhất để xác định rằng địa chỉ IP có giá trị bằng cách sử dụng Python. Chúng tôi cũng sẽ học cách sử dụng địa chỉ IP hợp lệ để xác định vị trí của người dùng bằng cách sử dụng API định vị địa lý IP AbstractorApi. & NBSP;

Xác thực địa chỉ IP bằng mô -đun iPaddress [] Python

Xác thực IP bằng Python và Regex

Cách tìm vị trí của người dùng bằng cách sử dụng API định vị địa lý IP của Tóm tắt

Bắt đầu với API

Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.


ipaddress.ip_address["127.0.0.1"]

Ở đây, chúng tôi sử dụng thư viện Python Requests để gửi yêu cầu nhận đến URL API định vị địa lý trừu tượng, bao gồm khóa API của chúng tôi và địa chỉ IP dưới dạng các tham số truy vấn. Khi phản hồi JSON quay trở lại, chúng tôi chỉ cần in nội dung, nhưng trong một ứng dụng thực sự, bạn sẽ truy cập các trường đối tượng phản hồi và sử dụng thông tin trong ứng dụng của bạn.

Phản hồi mà AbstractApi gửi [được in khi chúng ta gọi in [phản hồi.Content] trông như thế này:

Lưu ý: Xác định thông tin đã được tái cấu trúc.


import ipaddress
def validate_ip_address[ip_string]:
   try:
       ip_object = ipaddress.ip_address[ip_string]
       print["The IP address '{ip_object}' is valid."]
   except ValueError:
       print["The IP address '{ip_string}' is not valid"]

validate_ip_address["127.0.0.1"]

>>> The IP address "127.0.0.1" is valid.

Mô -đun iPaddress hoạt động cho địa chỉ IPv6 cũng như địa chỉ IPv4:


validate_ip_address["2001:0db8:75a2:0000:0000:8a2e:0340:5625"]

>>> The IP address "2001:0db8:75a2:0000:0000:8a2e:0340:5625" is valid.

Xác thực IP bằng Python và Regex

Một cách khác để xác thực địa chỉ IP là sử dụng Regex tùy chỉnh của riêng bạn để kiểm tra hình dạng của chuỗi IP được cung cấp. Python cung cấp một thư viện có tên Re để phân tích cú pháp và phù hợp với Regex.

Phương pháp này ít mạnh mẽ hơn khi sử dụng mô -đun iPaddress và yêu cầu nhiều mã hơn ở đầu của chúng tôi để kiểm tra xem chuỗi không chỉ có hình dạng phù hợp, mà các giá trị trong đó nằm trong khoảng từ 0 đến 255. Bạn cũng sẽ cần hai viết hai Các chức năng riêng biệt để kiểm tra địa chỉ IPv4 so với địa chỉ IPv6, vì địa chỉ IPv6 có hình dạng khác biệt.

Trong hướng dẫn này, chúng tôi sẽ bao gồm IPv4.

Đầu tiên, chúng tôi sẽ tạo một chuỗi regex phù hợp với địa chỉ IPv4. Có một vài cách để viết điều này, nhưng một cách tốt đẹp, rõ ràng để làm như sau:


"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

Hãy để phá vỡ các thành phần của biểu thức này. & NBSP;

Nhóm nhân vật đầu tiên chỉ ra rằng chúng tôi đang tìm kiếm một ký tự số từ 0 đến 9

Tiếp theo, các số giữa niềng răng xoăn cho trình phân tích cú pháp regex mà chúng tôi đang tìm kiếm ít nhất một hoặc ba trường hợp của bộ ký tự trước đó. Vì bộ ký tự trước đây của chúng tôi là một số từ 0 đến 9, điều này nói với trình phân tích cú pháp rằng chúng tôi đang tìm kiếm một tập hợp các ký tự 1-3 số.

Điều này nói với trình phân tích cú pháp để tìm kiếm. tính cách. Trong Regex, The. Nhân vật là một nhân vật đặc biệt có nghĩa là bất kỳ nhân vật nào. Chúng ta phải thoát khỏi & nbsp; . & nbsp; với một dấu gạch chéo ngược để nói với trình phân tích cú pháp rằng chúng tôi đang tìm kiếm một bản theo nghĩa đen & nbsp; . Và không phải là bất kỳ nhân vật nào.

Ba thành phần đó tạo thành một byte của một địa chỉ IP [ví dụ: 192.] Bây giờ, chúng tôi chỉ cần lặp lại chuỗi này bốn lần [bỏ qua khoảng thời gian cuối cùng.]

Để sử dụng chuỗi regex của chúng tôi, chúng tôi cần nhập mô -đun Python RE. Tiếp theo, chúng tôi sẽ sử dụng phương thức .match [] từ mô -đun để khớp với đầu vào chuỗi với biểu thức regex của chúng tôi. & Nbsp;


import re
match = re.match[r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", "127.0.0.1"]
print[match]

ipaddress.ip_address["127.0.0.1"]
0

& nbsp; Nếu chuỗi là một đối sánh, hãy sử dụng nó để tạo một đối tượng khớp với thông tin về khoảng của trận đấu và chuỗi được khớp. Vì chúng tôi không cần tất cả thông tin đó, chúng tôi sẽ đưa ra phản hồi cho Boolean.

Điều này là tốt, nhưng điều gì sẽ xảy ra nếu người dùng nhập một chuỗi bao gồm số 3 chữ số lớn hơn 255? Hiện tại, trình kết hợp Regex của chúng tôi sẽ trả về đúng mặc dù đó không phải là địa chỉ IPv4 hợp lệ. Vì vậy, chúng tôi cần thực hiện một kiểm tra khác trên chuỗi của chúng tôi để đảm bảo rằng tất cả các số trong đó là từ 0 đến 255.

Ở đây, những gì chức năng xác thực hoàn chỉnh của chúng tôi bằng cách sử dụng Regex trông giống như kiểm tra đó:


ipaddress.ip_address["127.0.0.1"]
1

Cách tìm vị trí của người dùng bằng cách sử dụng API định vị địa lý IP của Tóm tắt

Khi bạn chắc chắn rằng bạn có một địa chỉ IP hợp lệ, bạn có thể sử dụng địa chỉ IP đó để xác định vị trí địa lý của người dùng. Điều này rất hữu ích để làm những việc như phục vụ tài sản bằng ngôn ngữ chính xác, xác minh rằng yêu cầu của người dùng không phải là gian lận và hiển thị vị trí người dùng trên bản đồ.

Để tìm hiểu định vị địa lý của người dùng từ IP của họ, chúng tôi sẽ sử dụng API định vị địa lý IP AbstractorApi. API REST đơn giản này chấp nhận chuỗi địa chỉ IP và trả về một đối tượng JSON với thông tin về địa chỉ IP, bao gồm vị trí, thông tin thiết bị, thông tin vận chuyển và nhiều hơn nữa.

Bắt đầu với API

Có được khóa API

  1. Điều hướng đến trang tài liệu API. Bạn có thể thấy một ví dụ về đối tượng phản hồi API API JSON ở bên phải và một nút màu xanh lam bắt đầu ở bên trái.

  1. Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.

  1. Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.

Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.

Khi bạn đã đăng ký hoặc đăng nhập, bạn sẽ hạ cánh trên trang chủ API, nơi bạn sẽ thấy các tùy chọn về tài liệu, giá cả và hỗ trợ, cùng với khóa API và tab của bạn để xem mã kiểm tra cho các ngôn ngữ được hỗ trợ.

  1. Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.

  1. Nhấp vào nút Nhận Bắt đầu. Nếu bạn chưa bao giờ sử dụng AbstractApi trước đây, Yyu hè sẽ được đưa đến một trang mà bạn đã yêu cầu nhập email của bạn và tạo mật khẩu. Nếu bạn đã sử dụng trừu tượng trước đây, bạn có thể được yêu cầu đăng nhập.

ipaddress.ip_address["127.0.0.1"]
2

Khi bạn đã đăng ký hoặc đăng nhập, bạn sẽ hạ cánh trên trang chủ API, nơi bạn sẽ thấy các tùy chọn về tài liệu, giá cả và hỗ trợ, cùng với khóa API và tab của bạn để xem mã kiểm tra cho các ngôn ngữ được hỗ trợ.

Thực hiện yêu cầu định vị địa lý IP với Python


ipaddress.ip_address["127.0.0.1"]
3

Khóa API của bạn là tất cả những gì bạn cần để có được thông tin định vị địa lý cho một địa chỉ IP. AbstractApi cung cấp một số mã ví dụ trong một số ngôn ngữ để giúp bạn bắt đầu. Cắm mã để làm cho yêu cầu vào ứng dụng Python của chúng tôi rất đơn giản. Hãy để thêm một chức năng mới để lấy địa chỉ IP mà chúng tôi vừa xác nhận và gửi nó đến API.


ipaddress.ip_address["127.0.0.1"]
4

Chọn tab Python trên mạng trên trang TẮT API Toàn cầu API. Bạn sẽ thấy một đoạn mã trong hộp văn bản.

Sao chép đoạn mã và dán nó vào một hàm mới gọi là get_geolocation_info. Đây sẽ là nơi chúng tôi xử lý logic để gửi và nhận các yêu cầu của chúng tôi đến AbstractApi.


ipaddress.ip_address["127.0.0.1"]
5

Ở đây, chúng tôi sử dụng thư viện Python Requests để gửi yêu cầu nhận đến URL API định vị địa lý trừu tượng, bao gồm khóa API của chúng tôi và địa chỉ IP dưới dạng các tham số truy vấn. Khi phản hồi JSON quay trở lại, chúng tôi chỉ cần in nội dung, nhưng trong một ứng dụng thực sự, bạn sẽ truy cập các trường đối tượng phản hồi và sử dụng thông tin trong ứng dụng của bạn.

Hãy để dọn dẹp chức năng một chút để phù hợp với các thực tiễn tốt nhất.

Phản hồi mà AbstractApi gửi [được in khi chúng ta gọi in [phản hồi.Content] trông như thế này:

Lưu ý: Xác định thông tin đã được tái cấu trúc.

Bây giờ chúng ta có thể viết một chức năng duy nhất sử dụng chức năng xác thực Regex của mình để xác thực IP và sau đó gửi nó đến API định vị địa lý bằng chức năng yêu cầu định vị địa lý của chúng tôi.

Sự kết luận

Trong bài viết này, chúng tôi đã tìm hiểu địa chỉ IP là gì, sự khác biệt giữa địa chỉ IPv4 và IPv6, cách xác thực địa chỉ IP bằng mô -đun iPaddress Python và sử dụng regex và cách nhận thông tin định vị địa lý cho địa chỉ IP .

Làm cách nào để xác định vị trí từ địa chỉ IP?

Có một số cách để tìm vị trí người dùng từ địa chỉ IP của họ. Cách dễ nhất là sử dụng API định vị địa lý chuyên dụng, chẳng hạn như API định vị địa lý IP trừu tượng. Bạn cũng có thể nhìn vào chế độ xem nhật ký của máy chủ web của bạn nếu bạn có quyền truy cập vào nó. Nếu bạn chạy một trang web và sử dụng Google Analytics, bảng điều khiển tìm kiếm của Google cho phép bạn truy cập vào thông tin vị trí người dùng cơ bản như quốc gia và tiểu bang. & NBSP;

Tại sao tôi nên quan tâm đến địa chỉ IP của mình?

Thành thật mà nói, bạn không thực sự cần. Tuy nhiên, bạn nên biết rằng khi bạn duyệt Internet, địa chỉ IP của bạn được sử dụng bởi các ứng dụng và trang web để có được thông tin về thiết bị, vị trí của bạn và những thứ khác. Địa chỉ IP của bạn chỉ là một cách mà các trang web có để theo dõi bạn. Nếu bạn không muốn các trang web có thể nhận dạng bạn, hãy xem xét sử dụng VPN để ẩn thông tin IP của bạn.

Một địa chỉ IP hợp lệ phải ở dạng A.B.C.D, trong đó A, B, C và D là số từ 0-255.Các số không thể là 0 tiền tố trừ khi chúng là 0.must be in the form of A.B.C.D, where A,B,C and D are numbers from 0-255. The numbers cannot be 0 prefixed unless they are 0.must be in the form of A.B.C.D, where A,B,C and D are numbers from 0-255. The numbers cannot be 0 prefixed unless they are 0.

Bằng cách sử dụng I-P.Show, bạn có thể kiểm tra xem bạn có hay không: trên thiết bị được hỗ trợ IPv4 tại đây: //v4.i-p.show.Trên một thiết bị được hỗ trợ IPv6 tại đây: //v6.i-p.show.show, you can check whether you are: On an IPv4 supported device here: //v4.i-p.show. On an IPv6 supported device here: //v6.i-p.show. show, you can check whether you are: On an IPv4 supported device here: //v4.i-p.show. On an IPv6 supported device here: //v6.i-p.show.

Bạn phải thêm Raw_Input để thêm toàn bộ địa chỉ IP tùy chỉnh.Nếu nó vẫn hiển thị eror, bạn có thể phải chuyển đổi IP thành một chuỗi.Lưu câu trả lời này.add raw_input to add whole custom IP address. If it still shows eror, you may have to convert ip to a string. Save this answer.add raw_input to add whole custom IP address. If it still shows eror, you may have to convert ip to a string. Save this answer.

Bài Viết Liên Quan

Chủ Đề