Ik had de behoefte om via Terminal te kunnen zien welke netwerk connecties (ethernet en wifi) actief waren.
'ifconfig' geeft een bak aan info, maar ik wilde echt alleen zien wat er actief was.
Hier mijn one-liner voor Terminal:
ifconfig | grep flags=8863 | grep -v bridge
Wat zoiets als dit geeft:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
Hier zien we en0 en en1 (beide ethernet poorten).
Een test met WiFi leverde:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
waarbij en2 mijn WiFi is.
Mocht je ook de IPv4 IP adressen willen zien, probeer dan dit:
ifconfig | grep 'flags=8863\|inet ' | grep -v 'bridge\|127.0.0.1'
Wat zoiets als dit geeft:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.2.147 netmask 0xffffff00 broadcast 192.168.2.255
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.2.244 netmask 0xffffff00 broadcast 192.168.2.255
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.2.245 netmask 0xffffff00 broadcast 192.168.2.255
waarbij en2 mijn WiFi is.
Merk op: ik ben geen expert wat de flags betreft, je vind die info in de if.h header file. Spotlight kan 'm zo vinden. Bij mij vond ik 'm hier
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/net/if.h
Hier de hexadecimale codes;
#define IFF_UP 0x1 /* interface is up */
#define IFF_BROADCAST 0x2 /* broadcast address valid */
#define IFF_DEBUG 0x4 /* turn on debugging */
#define IFF_LOOPBACK 0x8 /* is a loopback net */
#define IFF_POINTOPOINT 0x10 /* interface is point-to-point link */
#define IFF_NOTRAILERS 0x20 /* obsolete: avoid use of trailers */
#define IFF_RUNNING 0x40 /* resources allocated */
#define IFF_NOARP 0x80 /* no address resolution protocol */
#define IFF_PROMISC 0x100 /* receive all packets */
#define IFF_ALLMULTI 0x200 /* receive all multicast packets */
#define IFF_OACTIVE 0x400 /* transmission in progress */
#define IFF_SIMPLEX 0x800 /* can't hear own transmissions */
#define IFF_LINK0 0x1000 /* per link layer defined bit */
#define IFF_LINK1 0x2000 /* per link layer defined bit */
#define IFF_LINK2 0x4000 /* per link layer defined bit */
#define IFF_ALTPHYS IFF_LINK2 /* use alternate physical connection */
#define IFF_MULTICAST 0x8000 /* supports multicast */
Dus 8863 wil zeggen;
MULTICAST (0x8000) + SIMPLEX (0x800) + RUNNING (0x40) + NOTRAILERS (0x20) + BROADCAST (0x2) + UP (0x1).
Mocht je willen weten wat en0, en1 etc zou moeten zijn, probeer dan
networksetup -listnetworkserviceorder
Met als voorbeeld output:
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet 1
(Hardware Port: Ethernet 1, Device: en0)
(2) Ethernet 2
(Hardware Port: Ethernet 2, Device: en1)
(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en2)
(4) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en9)
(5) Thunderbolt Bridge
(Hardware Port: Thunderbolt Bridge, Device: bridge0)