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 19 Python
高效使用Python字典的清单
Apr 04 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
Django实现学生管理系统
Feb 26 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
python manage.py runserver流程解析
Nov 08 Python
python科学计算之scipy——optimize用法
Nov 25 Python
python 爬取马蜂窝景点翻页文字评论的实现
Jan 20 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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和MySql中计算时间差的方法
2011/04/22 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
显示、隐藏密码
2006/07/01 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
javascript实现画板功能
2020/04/12 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
学习python类方法与对象方法
2016/03/15 Python
利用python求相邻数的方法示例
2017/08/18 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
人事专员岗位职责
2013/11/20 职场文书
安全生产检查通报
2014/01/29 职场文书
岗位说明书标准范本
2014/07/30 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
Python作用域和名称空间的详细介绍
2022/04/13 Python