雪峰流云

专注于流媒体,CDN,P2P,Web前端和后端,涉猎的开源项目: ffmpeg/VLC/Darwin/P2P/CrtmpServer/SRS/ATS/nginx/OpenResty/WebKit...

在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():
    #注意外围使用双引号而非单引号,并且假设默认是第一个网卡,特殊环境请适当修改代码
    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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tao_627/article/details/49967185
文章标签: python
个人分类: Python
上一篇在Ubuntu 14.04 64bit上使用JBL Charge2+无线蓝牙音箱听歌指南
下一篇在CentOS 6.6 64bit上安装Python 3.5.0
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭