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中下划线的使用方法
Mar 27 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
使用python将图片按标签分入不同文件夹的方法
Dec 08 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
基于python3实现倒叙字符串
Feb 18 Python
Eclipse配置python默认头过程图解
Apr 26 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
python开发入门——set的使用
Sep 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python读取Excel实例详解
2018/08/17 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
港湾网络笔试题
2014/04/19 面试题
计算机网络专业自荐信
2014/07/04 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server