How can I list only interface name and assigned IP with ifconfig in terminal

Is there a way using only ifconfig to list only network interface names and their assigned IPs?

I am aware that I can do ifconfig | grep inet but this does not include the interface name (en0, en1 etc)


Netstat vs ifconfig.

Netstat -i is closest I can find for what you want (it does bit more then you asked).

Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
lo0   16384 <Link#1>                          7096     0     7096     0     0
lo0   16384 localhost   ::1                   7096     -     7096     -     -
lo0   16384 127           localhost           7096     -     7096     -     -
lo0   16384 localhost   fe80:1::1             7096     -     7096     -     -
gif0* 1280  <Link#2>                             0     0        0     0     0
stf0* 1280  <Link#3>                             0     0        0     0     0
en0   1500  <Link#4>    14:10:9f:f0:29:8c   380920     0   292385     0     0
en0   1500  mynet.local fe80:4::1610:9fff   380920     -   292385     -     -
en0   1500  10.5.50/24    10.5.50.95        380920     -   292385     -     -
en3   1500  <Link#5>    32:00:1a:e9:a9:a0        0     0        0     0     0
bridg 1500  <Link#6>    16:10:9f:0f:1e:00        0     0        0     0     0
p2p0  2304  <Link#7>    06:10:9f:f0:29:8c        0     0        0     0     0

You could run ifconfig -l to get a list of interfaces, then iterate through them.

(bash)

for i in `ifconfig -l `; do echo $i; ifconfig $i | grep "inet " ; done

This will print the interface on one line, and the "inet " info on the next line. Note that if you only search for "inet", the "inet6" line will also show up.