关闭

在Linux上利用python获取本机ip

标签: python
7343人阅读 评论(0) 收藏 举报
分类:

下面介绍在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():
    #注意外围使用双引号而非单引号,并且假设默认是第一个网卡,特殊环境请适当修改代码
    out = os.popen("ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' | head -1").read()
    print out

#另一种方法, 只需要指定网卡接口, 我更倾向于这个方法
def get_ip2(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])

if __name__ == '__main__':
    get_ip()
    print get_ip2('eth0')
    print get_ip2('lo')
下面是运行截图


参考文献

[1].http://bbs.csdn.net/topics/190130360

1
0
查看评论

Python获取本机所有IP地址

import socket# 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname())# 根据主机名称获取当前IP print('当前主机的IP为: ' + socket.gethostbyname(socket.getho...
  • qq_878799579
  • qq_878799579
  • 2017-07-03 09:10
  • 3539

Python获取本机所有网卡ip,掩码和广播地址

搜了一天,竟然没找到一段合适的代码来获取机器中所有网卡的ip,掩码和广播地址,大部分都是用socket,但是socket通常返回的要不就是内网地址,要不就是公网地址,不能够找到所有地址,真的太忧桑了,决定自己通过ifconfig或ipconfig的返回信息,一步步地过滤了。这次的代码主要用到了正则表...
  • xanxus46
  • xanxus46
  • 2015-03-27 20:34
  • 10620

python 获取网卡名称及其IP地址

windows上想知道网卡和IP地址,可以使用ipconfig命令,在linux上可以使用ifconfig命令,得到输出后,可以解析输出内容,我要介绍的方法更为简单,只需要安装一个名为psutil的第三方库即可 #coding=utf-8 import psutil #获取网卡名称和其ip地址,不...
  • KWSY2008
  • KWSY2008
  • 2016-09-12 09:42
  • 6036

python获取本机IP、探测指定URL的IP等信息、生成格式化时间

今天在写程序的时候遇上几个需求就是获取指定URL的一些信息,包括它的IP地址、城市、国家等信息,在文档保存的时候往往需要使用有标识意义的文件名,在这里使用自动生成的格式化时间的策略来保存,对于系统日志等应用来说是极为便利的,这样在查找错误的时候我们可以很快地定位到出错文件的位置,然后进行一些列的处理...
  • Together_CZ
  • Together_CZ
  • 2017-04-12 15:46
  • 683

Python获取ip地址

1. 获取ip/MAC地址等 获取本地ip地址首先想到的命令是ifconfig,然后从结果中提取出ip地址,Python代码如下: def get_ip(): cmd = "/sbin/ifconfig | grep 'inet addr' | grep -v 1...
  • Y2701310012
  • Y2701310012
  • 2014-12-25 16:28
  • 3445

超简单的 Python 根据用户ip查询位置

通过用户IP查询用户位置网上已经有这样的入口,很多都可以查,我这里使用了IP138的查询服务。这网站也是挺逗的,首页丑的不要不要的,登陆之后的页面却好看很多。首先注册一个ip138账号并登陆,在用户中心,IP查询服务中购买次数。我本来都准备掏钱了,没想到居然是免费的……..注册就送了10W积分,查询...
  • Creabine
  • Creabine
  • 2016-12-29 10:21
  • 2591

用PYTHON获取本机的IP地址

import socket import fcntl import struct def get_ip_address(ifname):     s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)     ...
  • hcx25909
  • hcx25909
  • 2012-12-04 17:48
  • 1335

python匹配ip地址

python匹配ip地址
  • sxingming
  • sxingming
  • 2016-08-18 20:45
  • 3371

python 获取本机计算机名和IP地址

1. >>>import socket >>>hostname = socket.gethostname() 'OOooo-PC' >>>ip = socket.gethostbyname(hostname) >>...
  • xm1331305
  • xm1331305
  • 2012-10-30 16:59
  • 17751

python获取本机IP、mac地址、计算机名

在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢?我们先来看一下python 获得本机MAC地址:import... 在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢? 我们先...
  • heizistudio
  • heizistudio
  • 2014-08-07 10:02
  • 16280
    个人资料
    • 访问:1240894次
    • 积分:14372
    • 等级:
    • 排名:第1016名
    • 原创:372篇
    • 转载:38篇
    • 译文:1篇
    • 评论:126条
    自我简介
    本人帝都码农一枚,喜钻研代码,搞过流媒体,P2P,搜索,浏览器,精准广告,目前在一家创业公司专注于cdn和运营商缓存的研发,欢迎志同道合者交流技术,切磋心得,共同进步!该博客是业余总结开发中的经验教训,梳理思路的结晶。博文如有不妥之处,请高人不吝赐教,若有侵犯版权的地方,请联系我删除。 Email:tao_627@aliyun.com
    最新评论