Cách Chúng Tôi Xác Định Địa Chỉ Gửi Thư Và Vị Trí Của Bạn Bằng Google Maps
Chúng tôi sẽ sử dụng thư viện python có tên ip2geotools cho phép bạn xác định vị trí thực của địa chỉ IP. Điều này có thể xác định quốc gia, khu vực, thành phố, vĩ độ và kinh độ của địa chỉ IP..
Nó hỗ trợ các địa chỉ IPv4 và IPv6 và có thể xử lý các địa chỉ IP đơn lẻ và danh sách các địa chỉ IP. Nhưng điều quan trọng cần lưu ý là thư viện không phải lúc nào cũng chính xác 100% và độ chính xác của kết quả sẽ phụ thuộc vào nguồn dữ liệu được sử dụng và chất lượng của dữ liệu. Tuy nhiên, nó được sử dụng rộng rãi và cộng đồng đang hoạt động, vì vậy thư viện được cập nhật thường xuyên.
>> Tham khảo thêm: Top 5 Công Thức Xoay Rubik 3×3 Nhanh Nhất
Nhận vị trí từ địa chỉ IP
Trong phần này, chúng ta sẽ thảo luận về mã python để trích xuất vị trí từ địa chỉ IP hoặc URL.
1. Nhập các thư viện cần thiết
$ pip install ip2geotools
import socket
import requests
from ip2geotools.databases.noncommercial import DbIpCity
from geopy.distance import distance
Hàm dưới đây được sử dụng để in chi tiết dòng địa chỉ IP Thành phố, Quốc gia, Tọa độ, v.v.
def printDetails(ip):
res = DbIpCity.get(ip, api_key="free")
print(f"IP Address: {res.ip_address}")
print(f"Location: {res.city}, {res.region}, {res.country}")
print(f"Coordinates: (Lat: {res.latitude}, Lng: {res.longitude})")
2. Lấy Vị trí từ Địa chỉ IP
ip_add = input("Enter IP: ") # 198.35.26.96
printDetails(ip_add)
Đầu ra:
IP Address: 198.35.26.96
Location: San Jose, California, US
Coordinates: (Lat: 37.3361663, Lng: -121.890591)
3. Nhận vị trí từ một URL
url = input("Enter URL: ") # www.youtube.com
ip_add = socket.gethostbyname(url)
printDetails(ip_add)
Đầu ra:
Enter the URL: www.youtube.com
IP Address: 173.194.214.91
Location: Mountain View, California, US
Coordinates: (Lat: 37.3893889, Lng: -122.0832101)
Một số trường hợp sử dụng phổ biến
Ở đây chúng tôi thảo luận về một số trường hợp sử dụng của nó như chặn địa chỉ IP của một số quốc gia cụ thể hoặc hai phép tính khoảng cách giữa hai địa chỉ IP, v.v.
1. Chặn một số địa chỉ IP dựa trên vị trí của chúng
Đoạn mã dưới đây tra cứu vị trí của một địa chỉ IP và sau đó kiểm tra xem quốc gia của vị trí đó có nằm trong danh sách các quốc gia bị chặn hay không.
def is_country_blocked(ip_address):
blocked_countries = ["China", "Canada", "India"]
location = DbIpCity.get(ip_address)
if location.country in blocked_countries:
return True
else:
return False
ip_add = input("Enter IP: ") # 198.35.26.96
if is_country_blocked(ip_add) is True:
print(f"IP Address: {ip_add} is blocked")
else:
print(f"IP Address: {ip_add} is allowed")
Đầu ra:
Enter the IP Address: 198.35.26.96
IP Address: 198.35.26.96 is allowed
Bạn cũng có thể sửa đổi mã đó để cho phép các địa chỉ IP từ một quốc gia cụ thể.
2. Tính khoảng cách giữa hai địa chỉ IP
Đoạn mã dưới đây sẽ tính toán khoảng cách (tính bằng km) giữa hai vị trí địa chỉ IP.
def calculate_distance(ip1, ip2):
res1 = DbIpCity.get(ip1)
res2 = DbIpCity.get(ip2)
lat1, lon1 = res1.latitude, res1.longitude
lat2, lon2 = res2.latitude, res2.longitude
return distance((lat1, lon1), (lat2, lon2)).km
# Input two IP addresses
ip_add_1 = input("1st IP: ") # 198.35.26.96
ip_add_2 = input("2nd IP: ") # 220.158.144.59
dist = calculate_distance(ip_add_1, ip_add_2)
print(f"Distance between them is {str(dist)}km")
Đầu ra:
Enter 1st IP Address: 198.35.26.96
Enter 2nd IP Address: 220.158.144.59
Distance between them is 12790.62320788363km
3. Tính toán khoảng cách giữa Vị trí hiện tại của bạn và Máy chủ
Đoạn mã dưới đây sẽ tính toán khoảng cách (tính bằng km) giữa vị trí hiện tại của bạn và vị trí địa chỉ IP đã cho.
def get_distance_from_location(ip, lat, lon):
res = DbIpCity.get(ip)
ip_lat, ip_lon = res.latitude, res.longitude
return distance((ip_lat, ip_lon), (lat, lon)).km
server_ip = input("Server's IP: ")
lat = float(input("Your Latitude: "))
lng = float(input("Your Longitude: "))
dist = get_distance_from_location(server_ip, lat, lng)
print(f"Distance between the server and your location is {str(dist)}km")
Đầu ra:
Enter your server's IP Address: 208.80.152.201
Enter your current location (Latitude): 26.4710
Enter your current location (Longitude): 73.1134
Distance between the server and your location is 12183.275099919923km
Phần kết luận
Có một số lợi ích của việc theo dõi vị trí của địa chỉ IP, chẳng hạn như doanh nghiệp có thể phân phối quảng cáo được nhắm mục tiêu đến người dùng dựa trên vị trí của họ. Điều này có thể dẫn đến các chiến dịch tiếp thị hiệu quả hơn, tỷ lệ chuyển đổi cao hơn và cá nhân hóa trải nghiệm của người dùng.
Ngoài ra, nó có thể hữu ích trong việc phát hiện gian lận, chẳng hạn như chặn địa chỉ IP từ một số quốc gia cụ thể, đồng thời xác thực địa chỉ IP để đảm bảo rằng chúng được định dạng đúng.
Tóm lại, tôi hy vọng bạn thích bài viết này và thấy nó có nhiều thông tin. Bạn có thể tìm thấy tệp hợp tác của mã hoàn chỉnh. Nếu bạn có bất kỳ đề xuất hoặc phản hồi nào, vui lòng liên hệ với tôi.
Chúc bạn một ngày tốt lành😀.
Xem thêm:
|
CÔNG TY TNHH PHÁT TRIỂN CÔNG NGHỆ MYPC
- Website: https://mypc.vn/
- Fanpage: https://www.facebook.com/mypc.vn
- Địa chỉ: Số 37 Ngõ 68 Phố Trung Kính , Phường Yên Hòa , Quận Cầu Giấy , TP Hà Nội
- Hotline : 091.113.4444 – 0979.296.555
- Email : mypc.com.vn@gmail.com