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自定义类的数组排序实现代码
Aug 28 Python
简单谈谈Python中的闭包
Nov 30 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
python中单下划线_的常见用法总结
Jul 10 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
使用Python函数进行模块化的实现
Nov 15 Python
使用python+whoosh实现全文检索
Dec 09 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
Django URL参数Template反向解析
Nov 24 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
python生成器generator用法实例分析
2015/06/04 Python
python自动裁剪图像代码分享
2017/11/25 Python
python绘制双柱形图代码实例
2017/12/14 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
python如何运行js语句
2020/09/09 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
司法局火灾防控方案
2014/06/05 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
经营场所使用证明
2015/06/19 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android