Python實(shí)現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法總結(jié)
方法一
import socket
def get_local_ip_address():
ip_address = ''
try:
# 獲取本機(jī)主機(jī)名
hostname = socket.gethostname()
# 獲取本機(jī)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命令來(lái)獲取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ù)獲取計(jì)算機(jī)的IP地址,并返回字符串格式的IP地址。
方法三(三方模塊)
import netifaces
def get_local_ip_address():
ip_address = ''
try:
# 獲取網(wǎng)絡(luò)接口列表
interfaces = netifaces.interfaces()
# 查找第一個(gè)非本地回環(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模塊來(lái)獲取計(jì)算機(jī)的網(wǎng)絡(luò)接口列表,并查找第一個(gè)非本地回環(huán)接口的IP地址。然后,它返回一個(gè)字符串格式的IP地址。
方法四(Linux)
如果你是在Linux系統(tǒng)上運(yùn)行Python程序,可以使用ifconfig命令來(lái)獲取內(nèi)網(wǎng)IP地址。以下是一個(gè)可以在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模塊來(lái)運(yùn)行Linux ifconfig命令,并從命令輸出中提取IP地址。它返回一個(gè)字符串格式的IP地址。
請(qǐng)注意,該方法僅適用于Linux系統(tǒng)。如果你使用的是其他操作系統(tǒng),請(qǐng)使用前面提到的方法之一來(lái)獲取計(jì)算機(jī)的內(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實(shí)現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法總結(jié)的文章就介紹到這了,更多相關(guān)Python獲取內(nèi)網(wǎng)IP地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django3.2 自動(dòng)發(fā)現(xiàn)所有路由代碼詳解
這篇文章主要為大家介紹了Django自動(dòng)發(fā)現(xiàn)所有路由的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12
Python實(shí)現(xiàn)自動(dòng)玩貪吃蛇程序
這篇文章主要介紹了通過(guò)Python實(shí)現(xiàn)的簡(jiǎn)易的自動(dòng)玩貪吃蛇游戲的小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)一學(xué)2022-01-01
Python文件系統(tǒng)模塊pathlib庫(kù)
這篇文章介紹了Python中的文件系統(tǒng)模塊pathlib庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
pycharm?使用conda虛擬環(huán)境的詳細(xì)配置過(guò)程
這篇文章主要介紹了pycharm?使用conda虛擬環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
Python一鍵實(shí)現(xiàn)PDF文檔批量轉(zhuǎn)Word
無(wú)論是在工作還是學(xué)習(xí)當(dāng)中,大家都會(huì)遇到這樣一個(gè)問(wèn)題,將“PDF當(dāng)中的內(nèi)容(文本和圖片)轉(zhuǎn)換為Word的格式”,本文將用Python實(shí)現(xiàn)一鍵批量將PDF轉(zhuǎn)Word,需要的可以參考一下2022-08-08
Python中對(duì)象的比較操作==和is區(qū)別詳析
這篇文章主要給大家介紹了關(guān)于Python中對(duì)象的比較操作==和is區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

