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 相关文章推荐
解决python3 urllib中urlopen报错的问题
Mar 25 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Flask之flask-script模块使用
Jul 26 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
Python基于当前时间批量创建文件
May 07 Python
python 基于opencv操作摄像头
Dec 24 Python
pip install命令安装扩展库整理
Mar 02 Python
Python实现8种常用抽样方法
Jun 27 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下使用无限生命期Session的方法
2007/03/16 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python实现点对点聊天程序
2018/07/28 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
tornado+celery的简单使用详解
2019/12/21 Python
Python读取YAML文件过程详解
2019/12/30 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
校班主任推荐信范文
2013/12/03 职场文书
一年级班主任感言
2014/03/08 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
优秀教师个人总结
2015/02/11 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
MySQL一些常用高级SQL语句
2021/07/03 MySQL
python编程实现清理微信重复缓存文件
2021/11/01 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers