在Linux上利用python获取本机ip

原创 2015年11月21日 20:04:46

下面介绍在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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

1. >>>import socket >>>hostname = socket.gethostname() 'OOooo-PC' >>>ip = socket.gethostbyname(ho...

python匹配ip地址

python匹配ip地址

通过 python 获取本机IP地址

#!/usr/bin/pythonimport os import redef valid_ip(ip): if ("255" in ip) or ( ip == "127.0.0.1") o...

使用Python获取本机所有IP地址

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

在 python 使用socket 获取 IP

使用socket获取更多的信息 getsocketname:获得本机的信息(IP和port) getpeername:获得远程机器的信息(IP和port) fileno:每一个socket对应一个fd...
  • permike
  • permike
  • 2015年07月23日 17:00
  • 1661

Python获取本机所有IP地址

import socket# 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname())# 根据主机名称获取当前IP print('当前主机的IP为: ' +...

用python获取本地的ip地址

用python获取本地的ip地址: Windows下2种方法:1.使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip使用gethostbyname和get...

Python获取本机所有IP地址

Python获取本机所有IP地址

Python获取ip地址

1. 获取ip/MAC地址等 获取本地ip地址首先想到的命令是ifconfig,然后从结果中提取出ip地址,Python代码如下: def get_ip(): cmd = "/sbin/if...

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

windows上想知道网卡和IP地址,可以使用ipconfig命令,在linux上可以使用ifconfig命令,得到输出后,可以解析输出内容,我要介绍的方法更为简单,只需要安装一个名为psutil的第...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Linux上利用python获取本机ip
举报原因:
原因补充:

(最多只允许输入30个字)