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 相关文章推荐
Django框架中的对象列表视图使用示例
Jul 21 Python
Python实现命令行通讯录实例教程
Aug 18 Python
python3中str(字符串)的使用教程
Mar 23 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
如何使用Python实现斐波那契数列
Jul 02 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
pytorch常见的Tensor类型详解
Jan 15 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Numpy 理解ndarray对象的示例代码
Apr 03 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
thinkphp缓存技术详解
2014/12/09 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
django站点管理详解
2017/12/12 Python
python实现用户管理系统
2018/01/10 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
法定代表人资格证明书
2014/09/11 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers