最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用python來跟蹤ip地址的方法

 更新時(shí)間:2023年06月21日 10:48:43   作者:程序員學(xué)長  
今天來介紹一個(gè)流行的 python庫 ip2geotools,使用它可以確定 IP地址 對應(yīng)的 國家、地區(qū)、城市、緯度和經(jīng)度等,文中通過代碼示例介紹了如何使用python來跟蹤ip地址,需要的朋友可以參考下

根據(jù) IP 地址獲取位置

導(dǎo)入必要的庫

import socket
import requests
from ip2geotools.databases.noncommercial import DbIpCity
from geopy.distance import distance

下面的函數(shù)用于打印IP地址、城市、國家、坐標(biāo)等的詳細(xì)信息。

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 地址或計(jì)算兩個(gè) IP 地址之間的距離等。

1.根據(jù)位置阻止某些 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.計(jì)算兩個(gè)IP地址之間的距離

下面的代碼將計(jì)算兩個(gè) 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.計(jì)算你當(dāng)前位置和服務(wù)器之間的距離

下面的代碼將計(jì)算你當(dāng)前位置與給定 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

結(jié)論

跟蹤 IP 地址的位置有幾個(gè)好處,

例如企業(yè)可以根據(jù)用戶的位置向用戶投放有針對性的廣告。這可以帶來更有效的營銷活動(dòng)、更高的轉(zhuǎn)化率和個(gè)性化的用戶體驗(yàn)。

此外,它還有助于欺詐檢測,例如阻止來自某些特定國家/地區(qū)的 IP 地址,還可以驗(yàn)證 IP 地址以確保它們的格式正確。

到此這篇關(guān)于利用python來跟蹤ip地址的方法的文章就介紹到這了,更多相關(guān)python 跟蹤ip地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

石屏县| 广平县| 米易县| 罗山县| 珠海市| 新河县| 临西县| 维西| 虹口区| 乡宁县| 西吉县| 濮阳市| 寿宁县| 沙坪坝区| 安吉县| 双辽市| 蒙阴县| 静乐县| 桂平市| 汉川市| 溧阳市| 合作市| 南川市| 寿阳县| 巍山| 牡丹江市| 田东县| 普洱| 东宁县| 井研县| 江北区| 黑山县| 尚义县| 舟山市| 凤台县| 墨玉县| 长岛县| 囊谦县| 合作市| 宣城市| 雅江县|