iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
Python

一些Python可以做的事系列 第 27

[Python] 查詢電腦 Private IP 與 Public IP

  • 分享至 

  • xImage
  •  

這篇文章將介紹如何使用 Python 的標準庫 socket 來取得電腦的 Private IP,並且利用第三方庫 Requests 來查詢 Public IP。

查詢電腦的內網 Private IP
要取得電腦的Private IP,可以透過 Python 的標準庫 socket 來處理。socket 庫可以用來建立伺服器端和用戶端,讓它們能夠互相連接和傳遞訊息。以下是 socket 的基本用法:

socket.socket(family, type, proto)
  • family:IPv4 本機、IPv4 網路、IPv6 網路。
  • type:使用的傳輸協議類型(如 TCP 或 UDP)。
  • protocol:串接協定 ( 通常預設 0 )。

familytype 參數的內容如下:

參數 說明 詳細描述
socket.AF_UNIX IPv4 本機 適用於本地通信
socket.AF_INET IPv4 網路 適用於 IPv4 網路
socket.AF_INET6 IPv6 網路 適用於 IPv6 網路
socket.SOCK_STREAM 使用 TCP 適用於面向連接的傳輸
socket.SOCK_DGRAM 使用 UDP 適用於非面向連接的傳輸

以下程式碼將會使用 socket 庫的 socket 方法,與 Google 的Public DNS 伺服器(8.8.8.8,port 80)進行初始化連接,從而取得本機的 Private IP。

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
print(ip)
s.close()

查詢電腦的Public IP
如果要查詢電腦的Public IP,則需要使用 Requests 庫向特定的網站(例如 api.ipify.org)發送請求,然後獲取返回的 IP 資訊。

import requests
ip = requests.get('https://api.ipify.org').text
print(ip)

參考資料 :
https://steam.oxxostudio.tw/category/python/example/ip.html


上一篇
[Python] Keylogger
下一篇
[Python] Flask
系列文
一些Python可以做的事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言