linux中如何使用python3獲取ip地址
前言
這篇文章主要介紹了linux中如何使用python3獲取ip地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。
一、不帶參數(shù)
#!/usr/bin/python # -*- coding: UTF-8 -*- import os def get_ip(): #注意外圍使用雙引號(hào)而非單引號(hào),并且假設(shè)默認(rèn)是第一個(gè)網(wǎng)卡,特殊環(huán)境請(qǐng)適當(dāng)修改代碼 out = os.popen("ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' | head -1").read() ip=out.split('\n')[0] return ip res = get_ip() print(res)
二、帶參數(shù)
如果服務(wù)器是centos6 / centos7 兩種機(jī)器,上面方法對(duì)centos7不能正確獲取,而且有時(shí)要獲取的不是第一塊網(wǎng)卡
下面的方法可以同時(shí)用在windows 和linux 操作系統(tǒng),windows 不需要帶參數(shù),linux 參數(shù)為網(wǎng)卡名稱
# -*- coding: UTF-8 -*- import socket import os import platform import re def get_ip(*args): if platform.system() == 'Windows': my_name = socket.getfqdn(socket.gethostbyname('localhost')) my_addr = socket.gethostbyname(my_name) ip = my_addr.split('\n')[0] return ip else: my_addr = os.popen( "ifconfig | grep -A 1 %s|tail -1| awk '{print $2}'" % args[0]).read() ip = re.search(r'(?<![\.\d])(?:25[0-5]\.|2[0-4]\d\.|[01]?\d\d?\.)' r'{3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)(?![\.\d])',my_addr).group() return ip if __name__ == '__main__': f = get_ip('eno16777736') print(f)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python求均值,方差,標(biāo)準(zhǔn)差的實(shí)例
今天小編就為大家分享一篇Python求均值,方差,標(biāo)準(zhǔn)差的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python實(shí)現(xiàn)PS濾鏡的旋轉(zhuǎn)模糊功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡的旋轉(zhuǎn)模糊功能,涉及Python基于skimage庫(kù)針對(duì)圖片進(jìn)行旋轉(zhuǎn)與模糊化處理的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Python 內(nèi)置函數(shù)globals()和locals()對(duì)比詳解
這篇文章主要介紹了Python globals()和locals()對(duì)比詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Django實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict
這篇文章主要介紹了Django實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03