I do a lot of work on Virtual Machines, and have several scripts to help me configure them quickly. I could fully automate spinning up a headless VM, except that I need to know the IP of my host machine for configuring VNC stuff.
I use either of the following two commands to get the current IP address:
ipconfig getifaddr en1 # For IP address assigned to wireless
ipconfig getifaddr en0 # For IP address assigned to ethernet
The problem is that I have to tell my script whether to use en0 or en1. I use wireless at home and ethernet at work, so I can't make an assumption.
I could use:
ifconfig | grep '192'
and parse the resulting line (both work and home assign class C addresses), but I'd rather not have to do that.
Is there a way to determine which NIC is currently connected to the network from the command line? Or at least a better way of determining the host IP?
My machine uses Mountain Lion, if that's relevant.
ipconfig getifaddr en0
to see if there is a cable connected. ( without an cable I'm getting nothing back if I use that command )