Using PHP to return an IP address

Posted by | Posted in Code, Command-Line, Functions, OS X, PHP | Posted on 19-07-2009

After I’ve determine which interfaces are active on my computer(s), I can use this script to report back the IP address of said interface.

# input String ("en0")
# output String IP
function get_network_interface_ip($interface) {
  @exec('/usr/sbin/ipconfig getifaddr '. $interface, $retval);
 return $retval[0];
}// end get_network_iterface_ip
echo get_network_interface_ip($interface);

Using PHP to report an active network interface

Posted by | Posted in Code, Command-Line, Functions, OS X, PHP | Posted on 19-07-2009

I use this script, after I determine what available interfaces the computer has, to report which interfaces are active.

# input String ("en0")
# output "NULL or "Active" 
function check_interface_activity($interface){
  @exec('ifconfig| awk \'/flags=|media|inet / {if (substr($2, 1, 6) == "flags=") printf("\n%s ", $1);
  else if ($1 == "inet") printf("%s ", $2);
  else if ($1 == "media:") printf(substr($0, 9))}\' | awk \'$1 ~ /^'.$interface.'/\' | awk \'{print $7}\'',$retval);
 return $retval[0];
} // end check_interface
echo check_interface($interface);

Using PHP to gather all active network interfaces

Posted by | Posted in Code, Command-Line, Functions, OS X, PHP | Posted on 19-07-2009

I use this script to gather all Ethernet based network activity to determine which network port is active and then determine what the hardware address and IP address are.

# input NONE
# output String ("en0, en1")
 
function get_all_active_network_interfaces() {
  $inclusion = array(en0,en1);
  @exec('/sbin/ifconfig -lu', $retval);
  $interfaces = explode(" ",$retval[0]);
  $ret=NULL;
  foreach($interfaces as $interface){
     if (in_array($interface,$inclusion)){
       $ret.=$interface ." \n \r";
     } // end if
  }// end foreach
return $ret;
} // end get_all_active_network_interfaces
echo get_all_active_network_interfaces();

This script is similar to the above script, but doesn’t include the constraints of the inclusion list.

# input NONE
# output String ("en0, en1, etc") 
function get_all_active_network_interfaces() {
  @exec('/sbin/ifconfig -lu', $retval);
  $interfaces = explode(" ",$retval[0]);
  $ret=NULL;
    foreach($interfaces as $interface){
      $ret .= $interface ." \n \r";
    }// end foreach
return $ret;
} // end get_all_active_network_interfaces
 
echo get_all_active_network_interfaces();

OS X’s scutil

Posted by | Posted in Bash, Code, Command-Line, OS X | Posted on 17-07-2009

scutil is OS X’s way of managing system configuration parameters. These parameters not only include HostName, ComputerName, LocalHostName, but basically anything that the configd daemon uses.

Most of those files are located in

/System/Library/SystemConfiguration/
/Library/Preferences/SystemConfiguration/
.../preferences/
.../NetworkInterfaces/
.../VirturalNetworkInterfaces/

To enter the scutil prompt, type

/usr/sbin/scutil

To view all the scutil commands, type

> help

To get a list of all the scutil keys, type “list” or “list + [Pattern]”

> list

To view the contents of a key, type “show + [Pattern”

> show Setup:/Network/Global/IPv4

This will result in a pattern like this.

< dictionary > {
  ServiceOrder :  {
    0 : 59267386-49A6-401F-A23E-BE372AD748EB
    1 : 68719F97-53F0-479E-A497-8A3B809728D1
    2 : E936454A-40CA-4867-A759-61D6C38F5972
  }
}

To get your computer name, local host name or host name type,

/usr/sbin/scutil --get ComputerName
/usr/sbin/scutil --get LocalHostName
/usr/sbin/scutil --get HostName

And setting those names are just as easy.

/usr/sbin/scutil --set ComputerName NEWNAME
/usr/sbin/scutil --set LocalHostName NEWNAME
/usr/sbin/scutil --set HostName NEWNAME

On a side note. ComputerName HostName can be set to blank, but LocalHostName needs at least 1 character.

To quit scutil type,

> quit

Family Commands of scutil are

/usr/sbin/scutil  -- Manage system configuration parameters
/usr/sbin/scselect  -- Select system configuration "location"
/usr/sbin/configd -- -- System Configuration Daemon

Join the mailing list

Check your email and confirm the subscription