Linux下通过python获取本机ip方法示例


Posted in Python onSeptember 06, 2019

下面介绍在Linux上利用python获取本机ip的方法.

经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码:

#!/usr/bin/env python
#encoding: utf-8
#description: get local ip address
 
import os
import socket, fcntl, struct
 
def get_ip():
 #注意外围使用双引号而非单引号,并且假设默认是第一个网卡,特殊环境请适当修改代码
 out = os.popen("ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' | head -1").read()
 print out
 
#另一种方法, 只需要指定网卡接口, 我更倾向于这个方法
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')

下面是运行截图

Linux下通过python获取本机ip方法示例

参考文献

[1].http://bbs.csdn.net/topics/190130360

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python类参数self使用示例
Feb 17 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
详解Python循环作用域与闭包
Mar 21 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
Python笔记之工厂模式
Nov 20 Python
python支持多线程的爬虫实例
Dec 21 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
python 实现学生信息管理系统的示例
Nov 28 Python
如何使用PyCharm及常用配置详解
Jun 03 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 Python
django-crontab 定时执行任务方法的实现
Sep 06 #Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 #Python
python自动发微信监控报警
Sep 06 #Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 #Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 #Python
Python数学形态学实例分析
Sep 06 #Python
Python统计分析模块statistics用法示例
Sep 06 #Python
You might like
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
Python3基础之函数用法
2014/08/13 Python
python实现内存监控系统
2021/03/07 Python
Flask-WTF表单的使用方法
2019/07/12 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
使用python实现多维数据降维操作
2020/02/24 Python
numpy库reshape用法详解
2020/04/19 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
高中生学习的自我评价
2013/12/14 职场文书
党员承诺践诺书
2014/05/20 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
煤矿安全保证书
2015/02/27 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
公司更名通知函
2015/04/24 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android