added Linux and OSx support, redesigned the internal ip address method, added external ip address functionality