亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python查詢自己或任意指定的IP地址

 更新時間:2025年10月21日 08:49:44   作者:燭陰  
這篇文章主要為大家詳細介紹了如何使用Python查詢自己或任意指定的IP地址,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

準備工作:安裝必備工具

首先,請確保你的Python環(huán)境中安裝了requests庫。

pip install requests

第一步:查詢自己的公網(wǎng) IP 信息

import requests
import json

# 向ipinfo.io發(fā)送請求,不帶任何IP地址,它會默認查詢你自己的IP
url = "https://ipinfo.io/json"

try:
    response = requests.get(url)
    response.raise_for_status() # 如果請求失敗 (如狀態(tài)碼 4xx, 5xx), 會拋出異常

    # 將返回的JSON格式數(shù)據(jù)解析為Python字典
    data = response.json()

    print("--- 你的IP信息詳情 ---")
    # 為了美觀,使用json.dumps進行格式化輸出
    print(json.dumps(data, indent=4, ensure_ascii=False))

except requests.exceptions.RequestException as e:
    print(f"請求失敗: {e}")

運行后,你將看到類似這樣的輸出(信息會根據(jù)你的實際情況而變):

{
    "ip": "xxx.xxx.xxx.xxx",
    "hostname": "some.host.name",
    "city": "xx",
    "region": "xx",
    "country": "CN",
    "loc": "39.9042,116.4074",
    "org": "xx",
    "postal": "100000",
    "timezone": "Asia/Shanghai",
    "readme": "https://ipinfo.io/missingauth"
}

第二步:查詢?nèi)我庵付ǖ?IP 地址

我們可以查詢?nèi)魏我粋€我們想查的公網(wǎng)IP,比如谷歌的公共DNS服務(wù)器 8.8.8.8

import requests
import json

# 定義要查詢的IP地址
target_ip = "8.8.8.8"

# 構(gòu)造請求URL,將IP地址拼接到URL中
url = f"https://ipinfo.io/{target_ip}/json"

try:
    response = requests.get(url)
    response.raise_for_status()

    data = response.json()

    print(f"--- IP: {target_ip} 的信息詳情 ---")
    print(json.dumps(data, indent=4, ensure_ascii=False))

except requests.exceptions.RequestException as e:
    print(f"請求失敗: {e}")

輸出將會是:

{
    "ip": "8.8.8.8",
    "hostname": "dns.google",
    "city": "Mountain View",
    "region": "California",
    "country": "US",
    "loc": "37.4056,-122.0775",
    "org": "AS15169 Google LLC",
    "postal": "94043",
    "timezone": "America/Los_Angeles",
    "readme": "https://ipinfo.io/missingauth",
    "anycast": true
}

第三步:自由封裝成自己需要的內(nèi)容顯示庫

示例

import requests

def get_ip_info(ip_address: str) -> dict | None:
    """
    查詢指定IP地址的詳細信息。
    
    :param ip_address: 要查詢的IP地址字符串。
    :return: 包含IP信息的字典,如果查詢失敗則返回None。
    """
    url = f"https://ipinfo.io/{ip_address}/json"
    try:
        response = requests.get(url, timeout=5) # 增加超時設(shè)置
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"查詢IP {ip_address} 時出錯: {e}")
        return None

# --- 使用我們封裝好的函數(shù) ---
if __name__ == "__main__":
    ip_list = ["8.8.8.8", "1.1.1.1", "114.114.114.114"]
    
    for ip in ip_list:
        info = get_ip_info(ip)
        if info:
            country = info.get('country', 'N/A')
            city = info.get('city', 'N/A')
            org = info.get('org', 'N/A')
            print(f"IP: {ip:<15} | Location: {country}, {city} | Organization: {org}")

方法補充

python 獲取本機IP地址的多種方法

方法一: 通常使用socket.gethostbyname()方法即可獲取本機IP地址,但有時候獲取不到(比如沒有正確設(shè)置主機名稱),示例代碼如下:

import socket

# 獲取本機計算機名稱
hostname = socket.gethostname()
# 獲取本機ip
ip = socket.gethostbyname(hostname)
print(ip)

方法二: 親測本方法在windows和Linux系統(tǒng)下均可正確獲取IP地址

import socket

def get_host_ip():
    """
    查詢本機ip地址
    :return: ip
    """
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()

    return ip

if __name__ == '__main__':
    print(get_host_ip())

到此這篇關(guān)于使用Python查詢自己或任意指定的IP地址的文章就介紹到這了,更多相關(guān)Python查詢IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中turtle庫的使用實例

    Python中turtle庫的使用實例

    這篇文章主要介紹了Python中turtle庫的使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形

    Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形

    這篇文章主要給大家介紹了關(guān)于Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形的相關(guān)資料,提供了每種形狀的實現(xiàn)代碼和輸出結(jié)果,需要的朋友可以參考下
    2025-05-05
  • Python首次安裝后運行報錯(0xc000007b)的解決方法

    Python首次安裝后運行報錯(0xc000007b)的解決方法

    最近在安裝完P(guān)ython后運行發(fā)現(xiàn)居然報錯了,錯誤代碼是0xc000007b,于是通過往上查找發(fā)現(xiàn)是因為首次安裝Python缺乏VC++庫的原因,下面通過這篇文章看看如何解決這個問題吧。
    2016-10-10
  • python 實現(xiàn)得到當前時間偏移day天后的日期方法

    python 實現(xiàn)得到當前時間偏移day天后的日期方法

    今天小編就為大家分享一篇python 實現(xiàn)得到當前時間偏移day天后的日期方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 學生如何注冊Pycharm專業(yè)版以及pycharm的安裝

    學生如何注冊Pycharm專業(yè)版以及pycharm的安裝

    這篇文章主要介紹了學生如何注冊Pycharm專業(yè)版以及pycharm的安裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • python pandas詳細用法指南(推薦)

    python pandas詳細用法指南(推薦)

    這篇文章主要介紹了Python中pandas庫中Series和DataFrame數(shù)據(jù)結(jié)構(gòu)的基本定義、讀取和保存文件的方法、數(shù)據(jù)的基本操作和數(shù)據(jù)分析技巧,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • Python實現(xiàn)的三層BP神經(jīng)網(wǎng)絡(luò)算法示例

    Python實現(xiàn)的三層BP神經(jīng)網(wǎng)絡(luò)算法示例

    這篇文章主要介紹了Python實現(xiàn)的三層BP神經(jīng)網(wǎng)絡(luò)算法,結(jié)合完整實例形式分析了Python三層BP神經(jīng)網(wǎng)絡(luò)算法的具體實現(xiàn)與使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Python的10道簡單測試題(含答案)

    Python的10道簡單測試題(含答案)

    這篇文章主要介紹了Python的10道簡單測試題(含答案),學習了一段時間python的小伙伴來做幾道測試題檢驗一下自己的學習成果吧
    2023-04-04
  • Python OpenCV讀取視頻報錯的問題解決

    Python OpenCV讀取視頻報錯的問題解決

    大家好,本篇文章主要講的是Python OpenCV讀取視頻報錯的問題解決,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • python爬蟲實戰(zhàn)之最簡單的網(wǎng)頁爬蟲教程

    python爬蟲實戰(zhàn)之最簡單的網(wǎng)頁爬蟲教程

    在我們?nèi)粘I暇W(wǎng)瀏覽網(wǎng)頁的時候,經(jīng)常會看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設(shè)計的素材。下面這篇文章就來給大家介紹了關(guān)于利用python實現(xiàn)最簡單的網(wǎng)頁爬蟲的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評論