python獲取本機ip地址
Python獲取本機IP地址的方法有多種,可以通過socket庫、netifaces庫或者使用命令行工具來實現。下面將分別介紹這些方法。
1. 使用socket庫
`python
import socket
def get_local_ip():
try:
# 創(chuàng)建一個UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 連接到一個外部的IP地址和端口,不會真正發(fā)送數據
sock.connect(("8.8.8.8", 80))
# 獲取本地IP地址
ip = sock.getsockname()[0]
return ip
finally:
sock.close()
# 調用函數獲取本機IP地址
local_ip = get_local_ip()
print("本機IP地址為:", local_ip)
2. 使用netifaces庫
`python
import netifaces
def get_local_ip():
# 獲取所有網絡接口
interfaces = netifaces.interfaces()
for interface in interfaces:
# 獲取接口的地址信息
addresses = netifaces.ifaddresses(interface)
if netifaces.AF_INET in addresses:
# 獲取IPv4地址
ip = addresses[netifaces.AF_INET][0]['addr']
if not ip.startswith("127.0."):
return ip
# 調用函數獲取本機IP地址
local_ip = get_local_ip()
print("本機IP地址為:", local_ip)
3. 使用命令行工具
在Python中,可以使用subprocess模塊來執(zhí)行命令行命令,并獲取其輸出結果。可以使用以下命令來獲取本機IP地址:
`python
import subprocess
def get_local_ip():
# 執(zhí)行命令 ifconfig,并獲取輸出結果
result = subprocess.run(['ifconfig'], capture_output=True, text=True)
output = result.stdout
# 在輸出結果中查找IP地址
ip_start = output.find("inet ") + 5
ip_end = output.find(" ", ip_start)
ip = output[ip_start:ip_end]
return ip
# 調用函數獲取本機IP地址
local_ip = get_local_ip()
print("本機IP地址為:", local_ip)
以上是三種常用的方法來獲取本機IP地址的Python代碼。根據實際情況選擇適合的方法即可。
千鋒教育IT培訓課程涵蓋web前端培訓、Java培訓、Python培訓、大數據培訓、軟件測試培訓、物聯網培訓、云計算培訓、網絡安全培訓、Unity培訓、區(qū)塊鏈培訓、UI培訓、影視剪輯培訓、全媒體運營培訓等業(yè)務;此外還推出了軟考、、PMP認證、華為認證、紅帽RHCE認證、工信部認證等職業(yè)能力認證課程;同期成立的千鋒教研院,憑借有教無類的職業(yè)教育理念,不斷提升千鋒職業(yè)教育培訓的質量和效率。

相關推薦HOT
更多>>
python輸出文件路徑并保存
Python輸出文件路徑并保存Python是一種強大的編程語言,它提供了許多方法來處理文件和目錄。如果你想要輸出文件路徑并保存,可以使用Python的內...詳情>>
2023-08-22 16:08:21
python列表添加元素的函數
當我們使用Python編程時,經常會遇到需要向列表中添加元素的情況。Python提供了一些內置的方法來實現這一功能。其中,最常用的方法是使用append...詳情>>
2023-08-21 12:48:04
python列表添加元素的三種方法
Python列表添加元素的三種方法及使用技巧介紹:Python中的列表是一種常用的數據結構,用于存儲多個元素。在實際開發(fā)中,經常需要向列表中添加元...詳情>>
2023-08-21 12:47:51
python列表添加元素成為新的列表
當我們使用Python編程時,經常需要對列表進行操作,其中一個常見的操作就是添加元素成為新的列表。Python提供了多種方法來實現這個操作。我們可...詳情>>
2023-08-21 12:47:38