利用python來跟蹤ip地址的方法
根據 IP 地址獲取位置
導入必要的庫
import socket import requests from ip2geotools.databases.noncommercial import DbIpCity from geopy.distance import distance
下面的函數用于打印IP地址、城市、國家、坐標等的詳細信息。
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})")
從IP地址獲取位置
ip_add = input("Enter IP: ") # 198.35.26.96 printDetails(ip_add)
輸出:
IP Address: 198.35.26.96 Location: San Jose, California, US Coordinates: (Lat: 37.3361663, Lng: -121.890591)
從 URL 獲取位置
url = input("Enter URL: ") # www.youtube.com ip_add = socket.gethostbyname(url) printDetails(ip_add)
輸出:
IP Address: 142.250.66.142 Location: Hong Kong, Central and Western, HK Coordinates: (Lat: 22.2850394, Lng: 114.1583819)
一些常見的用例
在這里,我們討論它的一些用例,
例如阻止某些特定國家/地區(qū)的 IP 地址或計算兩個 IP 地址之間的距離等。
1.根據位置阻止某些 IP 地址
下面的代碼查找 IP 地址的位置,然后檢查該位置的國家/地區(qū)是否在被阻止國家/地區(qū)列表中。
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")
輸出:
Enter the IP Address: 198.35.26.96 IP Address: 198.35.26.96 is allowed
2.計算兩個IP地址之間的距離
下面的代碼將計算兩個 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")
輸出:
Enter 1st IP Address: 198.35.26.96 Enter 2nd IP Address: 220.158.144.59 Distance between them is 12790.62320788363km
3.計算你當前位置和服務器之間的距離
下面的代碼將計算你當前位置與給定 IP 地址位置之間的距離(以公里為單位)。
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")
輸出:
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
結論
跟蹤 IP 地址的位置有幾個好處,
例如企業(yè)可以根據用戶的位置向用戶投放有針對性的廣告。這可以帶來更有效的營銷活動、更高的轉化率和個性化的用戶體驗。
此外,它還有助于欺詐檢測,例如阻止來自某些特定國家/地區(qū)的 IP 地址,還可以驗證 IP 地址以確保它們的格式正確。
到此這篇關于利用python來跟蹤ip地址的方法的文章就介紹到這了,更多相關python 跟蹤ip地址內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python+numpy+matplotalib實現梯度下降法
這篇文章主要為大家詳細介紹了python+numpy+matplotalib實現梯度下降法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08使用python-pptx創(chuàng)建PPT演示文檔功能實踐
這篇文章主要介紹了使用python-pptx創(chuàng)建PPT演示文檔功能實踐,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06