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 相关文章推荐
用C++封装MySQL的API的教程
May 06 Python
Python的多态性实例分析
Jul 07 Python
浅谈Python基础之I/O模型
May 11 Python
python 中字典嵌套列表的方法
Jul 03 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python命名空间的本质和加载顺序
Dec 17 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
PyQt5重写QComboBox的鼠标点击事件方法
Jun 25 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 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
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
六个窍门助你提高Python运行效率
2015/06/09 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python 移动光标位置的方法
2019/01/20 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
以下的初始化有什么区别
2013/12/16 面试题
面包店的创业计划书范文
2014/01/16 职场文书
驾驶员培训方案
2014/05/01 职场文书
党员创先争优心得体会
2014/09/11 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
五年级小学生评语
2014/12/26 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书