Python 3.4 & Netifaces - 获取一个特定的 IPv4 地址
Python 3.4 & Netifaces - Get one specific IPv4 address
我正在尝试从我的移动互联网接口获取(或返回)一个 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)
所以每次我重新插入我的移动互联网接口时,我每次都会得到新地址。
你有一个列表,包含一个元素,一个字典。方括号表示列表,花括号表示其中的字典。
>>> 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'
我正在尝试从我的移动互联网接口获取(或返回)一个 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)
所以每次我重新插入我的移动互联网接口时,我每次都会得到新地址。
你有一个列表,包含一个元素,一个字典。方括号表示列表,花括号表示其中的字典。
>>> 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'