Python获取linux主机ip的简单实现方法


Posted in Python onApril 18, 2016

本文实例讲述了Python获取linux主机ip的简单实现方法。分享给大家供大家参考,具体如下:

python有好几种方法可以获取主机的ip地址。我常用的一种是通过socket.socket().inet_ntoa()来实现,非常方便;但这种方法有个限制就是要把网卡名(比如eth0)作为参数传进来。所以加多了一个条件判断,如果发现以上方法获取ip抛异常时,那就用调起shell命令(ifconfig)和管道,把想要的ip给过滤出来。

import socket
import fcntl
import struct
"""
获取主机ip地址
参数ifname: 通过'lo'获取的为环回地址, 通过'eth0'获取的为主机ip地址
"""
def get_ip_address(ifname='eth0'):
  try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
      s.fileno(),
      0x8915, # SIOCGIFADDR
      struct.pack('256s', ifname[:15])
    )[20:24])
  except:
    ips = os.popen("LANG=C ifconfig | grep \"inet addr\" | grep -v \"127.0.0.1\" | awk -F \":\" '{print $2}' | awk '{print $1}'").readlines()
    if len(ips) > 0:
      return ips[0]
  return ''

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python中元类用法实例
Oct 10 Python
Python编程中的异常处理教程
Aug 21 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 Python
tensorflow识别自己手写数字
Mar 14 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
使用Python画股票的K线图的方法步骤
Jun 28 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
Django Model中字段(field)的各种选项说明
May 19 Python
教你怎么用Python监控愉客行车程
Apr 29 Python
Python实现递归遍历文件夹并删除文件
Apr 18 #Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 #Python
Python出现segfault错误解决方法
Apr 16 #Python
Python判断值是否在list或set中的性能对比分析
Apr 16 #Python
python中zip()方法应用实例分析
Apr 16 #Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 #Python
Python使用redis pool的一种单例实现方式
Apr 16 #Python
You might like
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
深入php self与$this的详解
2013/06/08 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
vuex提交state&&实时监听state数据的改变方法
2018/09/16 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python开发的HTTP库requests详解
2017/08/29 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
学生学习总结的自我评价
2013/10/22 职场文书
不假外出检讨书
2014/01/27 职场文书
运动会解说词200字
2014/02/06 职场文书
军训感想500字
2014/02/20 职场文书
防震减灾主题班会
2015/08/14 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL