分享Python獲取本機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)比較喜歡用這個,在命令窗口也能使用:
curl http://myip.ipip.net

2、使用自帶socket庫
獲取的是局域網(wǎng)IP。
import socket # 函數(shù) gethostname() 返回當(dāng)前正在執(zhí)行 Python 的系統(tǒng)主機名 res = socket.gethostbyname(socket.gethostname()) print(res)
但是上面這個獲取的不是公網(wǎng)IP,結(jié)果也不穩(wěn)定(這里獲取了虛擬機下的IP),不建議使用。

如果計算機設(shè)備有連接到 Internet 的路由,可以使用:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])這個獲得的是局域網(wǎng)IP:

可以ipconfig看一下:

另一個適用于所有接口。它還適用于所有公共、私有、外部 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的話,那這個獲得的,可以認(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獲取本機IP地址的幾種方法的文章就介紹到這了,更多相關(guān)Python獲取本機IP方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python光學(xué)仿真面向?qū)ο蠊鈱W(xué)元件類的實現(xiàn)
這篇文章主要為大家介紹了python光學(xué)仿真面向?qū)ο蠊鈱W(xué)元件類的實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10
python網(wǎng)絡(luò)編程之文件下載實例分析
這篇文章主要介紹了python網(wǎng)絡(luò)編程之文件下載實現(xiàn)方法,實例分析了Python基于FTP及http實現(xiàn)文件下載的技巧,需要的朋友可以參考下2015-05-05
Python實現(xiàn)將圖像轉(zhuǎn)換為ASCII字符圖
使用Python進行圖像處理,非常快捷方便,往往簡短幾行代碼就可以實現(xiàn)功能強大的效果。在這篇文章中,我們將使用Python將圖像轉(zhuǎn)換為ASCII字符照,感興趣的可以了解一下2022-08-08
詳解MySQL數(shù)據(jù)類型int(M)中M的含義
int(M)拆分來說,int是代表整型數(shù)據(jù)那,么中間的M應(yīng)該是代表多少位了,后來查mysql手冊也得知了我的理解是正確的,下面這篇文章小編就來舉例詳細(xì)說明。 文中介紹的很詳細(xì),相信對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面就來學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法
這篇文章主要介紹了python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法,實例分析了Python使用pysftp模塊的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04

