文档章节

Python 获取本机ip地址

扫把就是扫把
 扫把就是扫把
发布于 2017/02/27 11:31
字数 217
阅读 35
收藏 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
成都
程序员
GyoiThon 新一代渗透工具采坑集

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

harry1080
04/15
0
0
【转载】如何制作python安装模块(setup.py)

Python 模块的安装方法: 单文件模块:直接把文件拷贝到 $PYTHON_DIR/lib 多文件模块,且带有 setup.py :只需执行 python setup.py install egg 文件:1) 下载 ezsetup.py ,运行 python e...

摩云飞
2013/01/04
0
0
Python_014 SMTP发邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件...

g00m
2015/02/21
0
0
Python远程连接服务器上的Oracle数据库

Python远程连接服务器上的Oracle数据库 1、正确的开启方式 在你的IPython或者是Anaconda的jupyter中输入一下代码,其中: ‘username’—— 用户名 ‘password’——密码 ‘192.168.1.1:1521/...

推荐码发放
05/04
0
0
Sublime Text 3 配置python交互运行环境的快捷键

使用Sublime Text 3能以轻量级的环境写python脚本,运行python代码。为了更加方便地调用python脚本,通过在Sublime Text 3中绑定快捷键的方式,实现一键调用python交互运行环境,操作方式如下...

雪饼
06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部