linux中如何使用python3获取ip地址


Posted in Python onJuly 15, 2019

前言

这篇文章主要介绍了linux中如何使用python3获取ip地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。

一、不带参数

#!/usr/bin/python
 
# -*- coding: UTF-8 -*-
 
import os
 
 
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()
  ip=out.split('\n')[0]
  return ip
res = get_ip()
print(res)

二、带参数

如果服务器是centos6 / centos7 两种机器,上面方法对centos7不能正确获取,而且有时要获取的不是第一块网卡

下面的方法可以同时用在windows 和linux 操作系统,windows 不需要带参数,linux 参数为网卡名称

# -*- 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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现的RC4算法
Feb 14 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
对pandas中Series的map函数详解
Jul 25 Python
Python之循环结构
Jan 15 Python
Python数据类型之Set集合实例详解
May 07 Python
Python语言进阶知识点总结
May 28 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
pandas如何处理缺失值
Jul 31 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Python数据分析入门之数据读取与存储
May 13 Python
python实现中文文本分句的例子
Jul 15 #Python
Python如何筛选序列中的元素的方法实现
Jul 15 #Python
python内存动态分配过程详解
Jul 15 #Python
python实现动态数组的示例代码
Jul 15 #Python
python移位运算的实现
Jul 15 #Python
python与C、C++混编的四种方式(小结)
Jul 15 #Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 #Python
You might like
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
opencv与numpy的图像基本操作
2019/03/08 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Python中一些深不见底的“坑”
2019/06/12 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python Pandas 箱线图的实现
2019/07/23 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
内业资料员岗位职责
2014/01/04 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
高中生旷课检讨书
2014/10/08 职场文书
学习委员竞选稿
2015/11/20 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers