Python获取linux主机ip的简单实现方法
本文实例讲述了Python获取linux主机ip的简单实现方法。分享给大家供大家参考,具体如下:
python有好几种方法可以获取主机的ip地址。我常用的一种是通过socket.socket().inet_ntoa()来实现,非常方便;但这种方法有个限制就是要把网卡名(比如eth0)作为参数传进来。所以加多了一个条件判断,如果发现以上方法获取ip抛异常时,那就用调起shell命令(ifconfig)和管道,把想要的ip给过滤出来。
import socket import fcntl import struct """ 获取主机ip地址 参数ifname: 通过'lo'获取的为环回地址, 通过'eth0'获取的为主机ip地址 """ def get_ip_address(ifname='eth0'): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24]) except: ips = os.popen("LANG=C ifconfig | grep \"inet addr\" | grep -v \"127.0.0.1\" | awk -F \":\" '{print $2}' | awk '{print $1}'").readlines() if len(ips) > 0: return ips[0] return ''
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
Linux 发邮件磁盘空间监控(python)
核心代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib import os import commands,time from email.mime.text import MIMEText #from email import MIMEText disk_free=os.popen('df -lh') list_disk=disk_free.read() mailto_list=["2880329185@qq.com&quo
-
Python2.x利用commands模块执行Linux shell命令
用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数: 1. commands.getoutput('shell command') 执行shell命令,返回结果(string类型) 复制代码 代码如下: >>> commands.getoutput('pwd') '/home/oracle' 2. commands.getstatus(
-
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: unixODBC FreeTDS pyodbc cx_Oracle 欢迎转载,请注明作者.出处. 作者:张正 QQ:176036317 如有疑问,欢迎联系. 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQ
-
Linux上安装Python的PIL和Pillow库处理图片的实例教程
安装 正常情况,只需 pip install PIL==1.1.7 或者 pip install Pillow==2.9.0 即可.但需留意安装后的输出 安装完成后,需留意输出: *** TKINTER support not available *** JPEG support not available *** WEBP support not available *** ZLIB (PNG/ZIP) support not available *** FREETYPE2 support n
-
Linux中Python 环境软件包安装步骤
简介: 记录一下关于 Python 环境软件包的一些安装步骤 1.升级 Python 到 2.7.10( 默认 2.6.6 ) shell > yum -y install epel-release shell > yum -y install gcc wget readline-devel zlib-devel openssl-devel shell > wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz sh
-
请不要重复犯我在学习Python和Linux系统上的错误
本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习.使用的对象,它简单.易用.好操作.界面绚丽,对于想接触Linux的新手来说是非常不错的.后来因为个人的知识有限,玩不转Linux的种种配置.各种插件以及软件缺失,加之没有持之以恒的坚持下去,使用了一段时间后感觉Bug多.没游戏.办公写文档也不方便,很多软件需要现学,最终希望用大学时光学习Linux的愿望夭折了. 后来一段时间里,自己接触了Python语言,Python语言让我
-
Python实现Linux命令xxd -i功能
一. Linux xxd -i功能 Linux系统xxd命令使用二进制或十六进制格式显示文件内容.若未指定outfile参数,则将结果显示在终端屏幕上:否则输出到outfile中.详细的用法可参考linux命令xxd. 本文主要关注xxd命令-i选项.使用该选项可输出以inputfile为名的C语言数组定义.例如,执行echo 12345 > test和xxd -i test命令后,输出为: unsigned char test[] = { 0x31, 0x32, 0x33, 0x34, 0x3
-
Python获取linux主机ip的简单实现方法
本文实例讲述了Python获取linux主机ip的简单实现方法.分享给大家供大家参考,具体如下: python有好几种方法可以获取主机的ip地址.我常用的一种是通过socket.socket().inet_ntoa()来实现,非常方便:但这种方法有个限制就是要把网卡名(比如eth0)作为参数传进来.所以加多了一个条件判断,如果发现以上方法获取ip抛异常时,那就用调起shell命令(ifconfig)和管道,把想要的ip给过滤出来. import socket import fcntl impor
-
Python获取服务器信息的最简单实现方法
本文实例讲述了Python获取服务器信息的最简单实现方法.分享给大家供大家参考.具体如下: 主要核心代码如下: sUrl = 'http://www.163.com' sock = urllib2.urlopen(sUrl) sock.headers.values() 希望本文所述对大家的Python程序设计有所帮助.
-
Python 获取主机ip与hostname的方法
->基础环境 Linux:ubuntu 16.04 Python : 2.7 ->修改hostname 1:$sudo hostname 2tong-slavetwo 2:$sudo vi /etc/hostname 2tong-slavetwo 3:$sudo vi /etc/hosts 127.0.0.1 localhost 2tong-slavetwo 127.0.1.1 2tong-slavetwo ->Python 环境下输出ip hostname >>>im
-
Linux下通过python获取本机ip方法示例
下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码: #!/usr/bin/env python #encoding: utf-8 #description: get local ip address import os import socket, fcntl, struct def get_ip(): #注意外围使用双引号而非单引号,并且假设默
-
python获取linux和windows系统指定接口的IP地址的步骤及代码
实验目的: 用户输入网卡名称,通过函数返回对应的IPv4和IPv6地址. 实验代码: 步骤一: 由于window系统下网卡名称并不是真正的名字,而真正的ID在注册表SYSTEM\CurrentControlSet\Control\Network{4d36e972-e325-11ce-bfc1-08002be10318}目录下.所以需要通过如下代码,返回接口名称和唯一ID的对应关系. win_ifname.py: import netifaces as ni # import winreg as
-
如何用Python获取计算机名,ip地址,mac地址
获取计算机名 # 获取计算机名,常用的方法有三种,但最常用的是第一种 import os import socket # method one name = socket.gethostname() print(name) # hanser # method two name = os.popen("hostname").read() print(name) # hanser # method three name = os.environ.get("COMPUTERNAME
-
python获取linux系统信息的三种示例
方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu
-
python获取linux系统信息的三种方法
方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu
-
使用Python获取并处理IP的类型及格式方法
公网与私有网络的判断其实十分简单,只要记住私有网络的三个网段.不过,对于记性不好的人或者学识不是很高的机器来说,有一种判断方法还是有必要的. 写如下脚本: from IPy import IP ip1 = IP('192.168.1.2') ip2 = IP('11.12.13.14') print("ip1 type: %s" % ip1.iptype()) print("ip2 type: %s" % ip2.iptype()) print("ip2
-
分享Python获取本机IP地址的几种方法
目录 1.使用专用网站 2.使用自带socket库 3.使用第三方netifaces库 1.使用专用网站 获取的是公网IP 网址:http://myip.ipip.net 代码: import requests res = requests.get('http://myip.ipip.net', timeout=5).text print(res) 比较喜欢用这个,在命令窗口也能使用: curl http://myip.ipip.net 2.使用自带socket库 获取的是局域网IP. impo
随机推荐
- 简单实现JS倒计时效果
- 如何计算多个订单的核销金额
- 浅谈mysql中多表不关联查询的实现方法
- Java贪心算法之Prime算法原理与实现方法详解
- 简单理解插入排序算法及Swift版的代码示例
- Android编程之绝对布局AbsoluteLayout和相对布局RelativeLayout实例详解
- Python利用Nagios增加微信报警通知的功能
- Go语言中的复合类型详细介绍
- C#基础知识之FileStream
- php 模拟POST提交的2种方法详解
- Android开发实现的简单媒体播放器功能示例
- Mysql之SQL Mode用法详解
- sql server多行数据拼接的实例方法
- Jquery对象和Dom对象的区别分析
- C# WinForm开发中使用XML配置文件实例
- Python使用chardet判断字符编码
- Android对话框自定义标题 对话框标题美化操作
- C# 的关键字详细介绍
- Android编程实现应用获取包名、版本号、权限等信息的方法
- python 获取文件下所有文件或目录os.walk()的实例