文档章节

Python 获取本机ip地址

扫把就是扫把
 扫把就是扫把
发布于 2017/02/27 11:31
字数 217
阅读 33
收藏 2
点赞 0
评论 0
# -*- 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
博文 29
码字总数 23616
作品 0
成都
程序员
GyoiThon 新一代渗透工具采坑集

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

harry1080 ⋅ 04/15 ⋅ 0

Python远程连接服务器上的Oracle数据库

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

推荐码发放 ⋅ 05/04 ⋅ 0

人生苦短之HTTP协议及Requests库的方法

requests库的主要方法:requests.request()构造一个请求    requests.get()获取HTML网页的主要方法,对应于HTTP的GET    requests.head()获取HTML网页头的方法,对应于HTTP的HEAD   ...

p柯西 ⋅ 06/14 ⋅ 0

一句python代码搭建FTP服务

环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/) 一行代码搞定的事: 到你打算分享的目录下执行,python -m pyf...

_周小董 ⋅ 05/01 ⋅ 0

Python学习你掌握对方法了吗?python自动化

阅读官方文档即可满足日常需求,官方文档有中文翻译,更加方便学习。但这些都是基础的语法和常见的模块,Python学习重要的是模块,快速、高效的开发依赖的是模块的应用,站在前人的肩膀会省时...

老男孩Linux培训 ⋅ 06/12 ⋅ 0

python访问memcached

python访问memcached memcached介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动...

laoba ⋅ 05/21 ⋅ 0

Centos7下安装python3并安装虚拟环境

引言 服务器自带的python版本大多是2.X,而且有些系统应用依赖于默认的python环境。但有时候要用到python3,为了不与系统的python环境相冲突,就新安装python3版本并使用虚拟环境。 安装准备...

_缘君_ ⋅ 05/02 ⋅ 0

Python使用Whois协议查询域名、IP地址信息

原文地址:http://shajunxing.tpddns.cn:8888/web/blog/2018-04-17-Python使用Whois协议查询域名、IP地址信息/index.html 问题由来 我想查询某个IP地址所属的运营商,于是在百度里搜索,得到...

shajunxing ⋅ 04/17 ⋅ 0

Python中操作memcached

安装memcached 客户端 启动memcache -p 指定端口号(默认11211) -m 指定最大使用内存大小(默认64MB) -t 线程数(默认4) -l 连接的IP地址, 默认是本机 -d 以后台守护进程的方式启动 ...

枫叶云 ⋅ 05/19 ⋅ 0

一项有趣的实验:装了杀软的主机真的安全吗?

  *本文作者:scu-igroup,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。   前言   我们有的理由怀疑自己的主机早被感染了恶意程序。大部分人都是采用重打包后的镜像来安装的盗版系...

FreeBuf ⋅ 05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 49分钟前 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 今天 ⋅ 0

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_object TYPE gos_s_obj.DA...

JerryWang_SAP ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

导读 人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云...

问题终结者 ⋅ 今天 ⋅ 0

637. Average of Levels in Binary Tree - LeetCode

Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这个树,把map里面填值,遍历结束后,再遍历这个map,把每...

yysue ⋅ 今天 ⋅ 0

IDEA配置和使用

版本控制 svn IDEA版本控制工具不能使用 VCS-->Enable Version Control Integration File-->Settings-->Plugins 搜索Subversion,勾选SVN和Git插件 删除.idea文件夹重新生成项目 安装SVN客户......

bithup ⋅ 今天 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部