分享Python獲取本機(jī)IP地址的幾種方法
1、使用專用網(wǎng)站
獲取的是公網(wǎng)IP
網(wǎng)址:http://myip.ipip.net
代碼:
import requests res = requests.get('http://myip.ipip.net', timeout=5).text print(res)
比較喜歡用這個(gè),在命令窗口也能使用:
curl http://myip.ipip.net
2、使用自帶socket庫
獲取的是局域網(wǎng)IP。
import socket # 函數(shù) gethostname() 返回當(dāng)前正在執(zhí)行 Python 的系統(tǒng)主機(jī)名 res = socket.gethostbyname(socket.gethostname()) print(res)
但是上面這個(gè)獲取的不是公網(wǎng)IP,結(jié)果也不穩(wěn)定(這里獲取了虛擬機(jī)下的IP),不建議使用。
如果計(jì)算機(jī)設(shè)備有連接到 Internet 的路由,可以使用:
import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) print(s.getsockname()[0])
這個(gè)獲得的是局域網(wǎng)IP:
可以ipconfig看一下:
另一個(gè)適用于所有接口。它還適用于所有公共、私有、外部 IP。這種方法在 Linux、Windows 和 OSX 上很有效。
import socket def extract_ip(): ? ? st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ? ? try: ? ? ?? ? ? ? ? st.connect(('10.255.255.255', 1)) ? ? ? ? IP = st.getsockname()[0] ? ? except Exception: ? ? ? ? IP = '127.0.0.1' ? ? finally: ? ? ? ? st.close() ? ? return IP print(extract_ip())
注意:如果本身局域網(wǎng)IP就是公網(wǎng)IP的話,那這個(gè)獲得的,可以認(rèn)為是公網(wǎng)IP了。
3、使用第三方netifaces庫
獲取的是局域網(wǎng)IP。
netifaces 模塊用于提供有關(guān)網(wǎng)絡(luò)接口及其狀態(tài)的信息。
代碼:
沒裝的先裝一下庫
pip3 install netifaces
然后使用:
from netifaces import interfaces, ifaddresses, AF_INET for ifaceName in interfaces(): ? ? addresses = [i['addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )] ? ? print(' '.join(addresses))
到此這篇關(guān)于分享Python獲取本機(jī)IP地址的幾種方法的文章就介紹到這了,更多相關(guān)Python獲取本機(jī)IP方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python使用Flask框架獲取用戶IP地址的方法
- python 獲取本機(jī)ip地址的兩個(gè)方法
- Python正則表達(dá)式匹配ip地址實(shí)例
- python實(shí)現(xiàn)查詢IP地址所在地
- 詳解Python判定IP地址合法性的三種方法
- python簡單獲取本機(jī)計(jì)算機(jī)名和IP地址的方法
- Python正則表達(dá)式匹配和提取IP地址
- python獲取本機(jī)所有IP地址的方法
- Python簡單獲取網(wǎng)卡名稱及其IP地址的方法【基于psutil模塊】
- Python3.10動(dòng)態(tài)修改Windows系統(tǒng)本地IP地址
相關(guān)文章
Python實(shí)現(xiàn)翻轉(zhuǎn)數(shù)組功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)翻轉(zhuǎn)數(shù)組功能,涉及Python針對數(shù)組的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01淺析PHP與Python進(jìn)行數(shù)據(jù)交互
本篇文章給大家分享了PHP與Python進(jìn)行數(shù)據(jù)交互的詳細(xì)方法以及重點(diǎn)點(diǎn)撥,有興趣的朋友可以學(xué)習(xí)下。2018-05-05python實(shí)現(xiàn)批量提取指定文件夾下同類型文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量提取指定文件夾下同類型文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Python生成ubuntu apt鏡像地址實(shí)現(xiàn)
本文主要介紹了Python生成ubuntu apt鏡像地址實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Django數(shù)據(jù)統(tǒng)計(jì)功能count()的使用
這篇文章主要介紹了Django數(shù)據(jù)統(tǒng)計(jì)功能count()的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11