How do you get the IP address of a given network interface?
In Python is there a function to get the IP address of a given network interface? Is there a command line programme that get do this?
I want to get the IP address of en1.
This is the result of ifconfig on my machine.
$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RU开发者_运维问答NNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:23:32:be:4e:90
media: autoselect
status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:23:6c:7e:3e:0c
inet6 fe80::223:6cff:fe7e:3e0c%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.70 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect
status: active
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 172.16.64.1 netmask 0xffffff00 broadcast 172.16.64.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 172.16.174.1 netmask 0xffffff00 broadcast 172.16.174.255
vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
$ sudo pip install netifaces
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information.
import netifaces
netifaces.ifaddresses('en0')
{18: [{'addr': '10:9a:dd:52:89:dc'}], 2: [{'broadcast': '10.188.55.255', 'netmask': '255.255.254.0', 'addr': '10.188.55.130'}], 30: [{'netmask': 'ffff:ffff:ffff:ffff::', 'addr': 'fe80::129a:ddff:fe52:89dc%en0'}]
精彩评论