文档章节

Python 获取本机ip地址

扫把就是扫把
 扫把就是扫把
发布于 2017/02/27 11:31
字数 217
阅读 43
收藏 2
# -*- coding=utf-8 -*-
# Created Time: 2017年02月27日 星期一 09时08分31秒
# File Name: get_mac_address.py


import uuid
import socket
import fcntl
import struct


def get_host_attr():

    attr = {
        "mac"     :"",
        "hostname":"",
        "ip"      :""
    }

    try:
        mac=uuid.UUID(int = uuid.getnode()).hex[-12:]
        mac = ":".join([mac[e:e+2] for e in range(0,11,2)])
    except:
        pass

    #获取本机电脑名
    try:
        hostname = socket.getfqdn(socket.gethostname())
    except:
        pass

    #获取本机ip
    try:
        ip = socket.gethostbyname(hostname)
    except:
        pass

    attr.update({
        "mac"     :mac,
        "hostname":hostname,
        "ip"      :ip
    })

    print 'attr: ', attr

    ip_list = socket.gethostbyname_ex(socket.gethostname())
    print 'ip_list: ', ip_list



def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    ip = socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
    print 'ip: ', ip


def get_my_ip():
    """
    Returns the actual ip of the local machine.
    This code figures out what source address would be used if some traffic
    were to be sent out to some well known address on the Internet. In this
    case, a Google DNS server is used, but the specific address does not
    matter much.  No traffic is actually sent.
    """
    try:
        csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        csock.connect(('8.8.8.8', 80))
        (addr, port) = csock.getsockname()
        csock.close()
        return addr
    except socket.error:
        return "127.0.0.1"


def main():

    get_host_attr()

    get_ip_address('eth0')

    ip = get_my_ip()
    print 'ip: ', ip


if __name__ == '__main__':
    main()

 

© 著作权归作者所有

共有 人打赏支持
扫把就是扫把
粉丝 1
博文 37
码字总数 23616
作品 0
成都
程序员
私信 提问
python实现socket通讯(TCP)

Server: Client: 运行结果: server [work@db-testing-com06-vm3.db01.baidu.com python]$ python server.py got connected from ('127.0.0.1', 47872) hihi client [work@db-testing-com0......

长平狐
2013/01/06
98
0
python实现socket通讯(TCP)

Server: Client: 运行结果: server [work@db-testing-com06-vm3.db01.baidu.com python]$ python server.py got connected from ('127.0.0.1', 47872) hihi client [work@db-testing-com0......

晨曦之光
2012/03/02
1K
1
初探Python CGI:搭建CGI编程调试环境

“CGI(Common Gateway Interface,通用网关接口) 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。”(百度百科)Python语言自带CGI处理模块,可以通过编写python ...

SamYjy
12/02
0
0
GyoiThon 新一代渗透工具采坑集

最好使用python3的环境 本次使用python2.7环境 1.关于kalipython切换 打开终端分别输入下面两条命令: update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update...

harry1080
04/15
0
0
《毒液》:用Fiddler+MongoDB抓取猫眼APP短评

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴...

天善智能
12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C4C销售订单行项目价格维护方法

需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域。 如下图所示: 下面是具体配置。 Business Configuration里,点击Sales Order的配置: ...

JerryWang_SAP
41分钟前
9
0
deepin中配置robot framework环境

本文永久更新地址:https://my.oschina.net/bysu/blog/2989005 【若要到岸,请摇船:开源中国 不最醉不龟归】 1.在终端中输入pip,回车,如果提示没有该命令,则先安转pip sudo apt-get inst...

不最醉不龟归
今天
8
0
OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
今天
204
5
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
24
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部