Linux下通過python獲取本機(jī)ip方法示例
下面介紹在Linux上利用python獲取本機(jī)ip的方法.
經(jīng)過網(wǎng)上調(diào)查, 發(fā)現(xiàn)大致有兩種方法, 一種是調(diào)用shell腳本,另一種是利用python中的socket等模塊來得到,下面是這兩種方法的源碼:
#!/usr/bin/env python
#encoding: utf-8
#description: get local ip address
import os
import socket, fcntl, struct
def get_ip():
#注意外圍使用雙引號而非單引號,并且假設(shè)默認(rèn)是第一個網(wǎng)卡,特殊環(huán)境請適當(dāng)修改代碼
out = os.popen("ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' | head -1").read()
print out
#另一種方法, 只需要指定網(wǎng)卡接口, 我更傾向于這個方法
def get_ip2(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])
if __name__ == '__main__':
get_ip()
print get_ip2('eth0')
print get_ip2('lo')
下面是運行截圖

參考文獻(xiàn)
[1].http://bbs.csdn.net/topics/190130360
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
python驗證公網(wǎng)ip與內(nèi)網(wǎng)ip的實現(xiàn)示例
本文主要介紹了python驗證公網(wǎng)ip與內(nèi)網(wǎng)ip的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
python 從遠(yuǎn)程服務(wù)器下載東西的代碼
python實現(xiàn)從遠(yuǎn)程服務(wù)器下載東西的代碼,有需要的朋友可以參考下2013-02-02
控制Python浮點數(shù)輸出位數(shù)的操作方法
在python的輸出結(jié)果中,尤其是浮點數(shù)的輸出,當(dāng)我們需要寫入文本文件時,最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性,這篇文章主要介紹了控制Python浮點數(shù)輸出位數(shù)的方法,需要的朋友可以參考下2022-04-04
python pandas dataframe 去重函數(shù)的具體使用
這篇文章主要介紹了python pandas dataframe 去重函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python基于socket模塊實現(xiàn)UDP通信功能示例
這篇文章主要介紹了Python基于socket模塊實現(xiàn)UDP通信功能,結(jié)合實例形式分析了Python使用socket模塊實現(xiàn)IPV4協(xié)議下的UDP通信客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2018-04-04

