【问题标题】:Python 3.4 & Netifaces - Get one specific IPv4 addressPython 3.4 & Netifaces - 获取一个特定的 IPv4 地址
【发布时间】:2015-01-07 11:47:50
【问题描述】:

我正在尝试从我的移动互联网接口获取(或返回)一个 IP 地址,每次我将其重新插入我的笔记本电脑时,该地址都会发生变化。我找到了使用netiface的接口:

import netiface

netifaces.interfaces()

这给了我一堆接口,说我需要的接口是xxx123-yyy456,所以我做了如下:

myIface = netifaces.ifaddressess('xxx123-yyy456')
myIface[netifaces.AF_INET]

这显示了这些地址(数字已更改):

[{'addr': '10.0.0.1', 'broadcast': '10.0.0.2', 'netmask': '255.255.255.255'}]

我不确定它是列表还是字典,因此我很难从中获取 IP 地址。我只得到了三个单词的列表:

addr
broadcast
netmask

我需要的是 'addr': 后面的地址号码,所以我可以使用它并稍后调用它。比如像:

myIp = <the IP the interface curently has>
print(myIp)

这样每次我重新插入移动互联网接口时,我都会获得新地址。

【问题讨论】:

    标签: python python-3.x ip-address


    【解决方案1】:

    您有一个列表,其中包含一个元素,即字典。方括号表示一个列表,大括号表示其中的字典。

    >>> results = [{'addr': '10.0.0.1', 'broadcast': '10.0.0.2', 'netmask': '255.255.255.255'}]
    >>> results[0]
    {'addr': '10.0.0.1', 'broadcast': '10.0.0.2', 'netmask': '255.255.255.255'}
    >>> results[0]['addr']
    '10.0.0.1'
    

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 2010-11-06
      • 2013-12-29
      • 1970-01-01
      • 2015-02-10
      • 2015-07-24
      • 1970-01-01
      • 2016-10-17
      • 2012-06-16
      相关资源
      最近更新 更多