Python實現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法總結(jié)
方法一
import socket
def get_local_ip_address():
ip_address = ''
try:
# 獲取本機主機名
hostname = socket.gethostname()
# 獲取本機IP
ip_address = socket.gethostbyname(hostname)
except:
pass
return ip_address
方法二
import subprocess
def get_local_ip_address():
ip_address = ''
try:
# 獲取IP地址
ip_address = subprocess.check_output(['hostname', '-I']).decode('utf-8').strip()
except:
pass
return ip_address
該方法利用了Unix系統(tǒng)上的hostname命令來獲取IP地址,并返回字符串格式的IP地址。如果你使用的是Windows系統(tǒng),則需要使用ipconfig命令。你可以在subprocess.check_output中傳遞正確的命令,以便在Windows上獲取IP地址。
import socket
def get_local_ip_address():
ip_address = ''
try:
# 獲取IP地址
ip_address = socket.getaddrinfo(socket.gethostname(), None, family=socket.AF_INET, proto=socket.IPPROTO_TCP)[0][4][0]
except:
pass
return ip_address
該方法利用getaddrinfo函數(shù)獲取計算機的IP地址,并返回字符串格式的IP地址。
方法三(三方模塊)
import netifaces
def get_local_ip_address():
ip_address = ''
try:
# 獲取網(wǎng)絡(luò)接口列表
interfaces = netifaces.interfaces()
# 查找第一個非本地回環(huán)接口的IP地址
for interface in interfaces:
if interface == 'lo':
continue
addresses = netifaces.ifaddresses(interface)
ip_addresses = addresses.get(netifaces.AF_INET)
if ip_addresses:
ip_address = ip_addresses[0]['addr']
break
except:
pass
return ip_address
該方法使用netifaces模塊來獲取計算機的網(wǎng)絡(luò)接口列表,并查找第一個非本地回環(huán)接口的IP地址。然后,它返回一個字符串格式的IP地址。
方法四(Linux)
如果你是在Linux系統(tǒng)上運行Python程序,可以使用ifconfig命令來獲取內(nèi)網(wǎng)IP地址。以下是一個可以在Linux系統(tǒng)上使用的Python函數(shù):
import subprocess
def get_local_ip_address():
ip_address = ''
try:
# 獲取IP地址
output = subprocess.check_output(['ifconfig']).decode('utf-8')
lines = output.split('\n')
for line in lines:
if 'inet ' in line and not line.startswith('127.0.0.1'):
ip_address = line.split()[1]
break
except:
pass
return ip_address
該方法使用subprocess模塊來運行Linux ifconfig命令,并從命令輸出中提取IP地址。它返回一個字符串格式的IP地址。
請注意,該方法僅適用于Linux系統(tǒng)。如果你使用的是其他操作系統(tǒng),請使用前面提到的方法之一來獲取計算機的內(nèi)部IP地址。
方法五(windows)
import os
def get_local_ip_address():
ip_address = ''
try:
# 獲取IP地址
ipconfig_process = os.popen('ipconfig')
ipconfig_output = ipconfig_process.read()
ipconfig_process.close()
for line in ipconfig_output.split('\n'):
if 'IPv4' in line:
ip_address = line.split(': ')[-1]
break
except:
pass
return ip_address
到此這篇關(guān)于Python實現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法總結(jié)的文章就介紹到這了,更多相關(guān)Python獲取內(nèi)網(wǎng)IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中利用zfill方法自動給數(shù)字前面補0
python中有一個zfill方法用來給字符串前面補0,非常不錯,下面小編給大家分享了實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04
Python實現(xiàn)樹莓派WiFi斷線自動重連的實例代碼
實現(xiàn) WiFi 斷線自動重連,原理是用 Python 監(jiān)測網(wǎng)絡(luò)是否斷線,如果斷線則重啟網(wǎng)絡(luò)服務(wù)。接下來給大家分享實現(xiàn)代碼,需要的朋友參考下2017-03-03
Python編寫繪圖系統(tǒng)之從文本文件導(dǎo)入數(shù)據(jù)并繪圖
這篇文章主要為大家詳細(xì)介紹了Python如何編寫一個繪圖系統(tǒng),可以實現(xiàn)從文本文件導(dǎo)入數(shù)據(jù)并繪圖,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-08-08
Python標(biāo)準(zhǔn)庫之zipfile和tarfile模塊的使用
zipfile和tarfile是Python中常用的壓縮包模塊,本文將通過示例詳細(xì)講解一下這兩個模塊的使用方法,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Python3以GitHub為例來實現(xiàn)模擬登錄和爬取的實例講解
在本篇內(nèi)容里小編給大家分享的是關(guān)于Python3以GitHub為例來實現(xiàn)模擬登錄和爬取的實例講解,需要的朋友們可以參考下。2020-07-07

