]> git.mxchange.org Git - shipsimu.git/blobdiff - ship-simu/inc/classes/main/console/class_ConsoleTools.php
Initial import of current development status
[shipsimu.git] / ship-simu / inc / classes / main / console / class_ConsoleTools.php
diff --git a/ship-simu/inc/classes/main/console/class_ConsoleTools.php b/ship-simu/inc/classes/main/console/class_ConsoleTools.php
new file mode 100644 (file)
index 0000000..c57070d
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+/**
+ * This class contains static helper functions for console applications
+ */
+class ConsoleTools extends BaseFrameworkSystem {
+       /**
+        * Private constructor
+        *
+        * @return      void
+        */
+       private function __construct () {
+               // Call parent constructor
+               parent::constructor(__CLASS__);
+
+               // Set description
+               $this->setPartDescr("Console-Tools");
+
+               // Create an unique ID
+               $this->createUniqueID();
+       }
+
+       /**
+        * Aquires the IP address of this host by reading the /etc/hostname file and solving it
+        *
+        * @return      $ip             The resolved IP address
+        */
+       public static function aquireSelfIPAddress () {
+               // Local IP by default
+               $ip = "127.0.0.1";
+
+               // Get a new instance
+               $helper = new ConsoleTools();
+
+               try {
+                       // Get a file pointer
+                       $io = FrameworkFileInputPointer::createFrameworkFileInputPointer("/etc/hostname");
+
+                       // Read the file
+                       $hostname = trim($io->readFromFile());
+                       $helper->getDebugInstance()->output(sprintf("[%s:] Our host name is: <strong>%s</strong><br />\n",
+                               $helper->__toString(),
+                               $hostname
+                       ));
+
+                       // Close the file
+                       $io->closeFile();
+
+                       // Resolve it
+                       $ipResolved = gethostbyname($hostname);
+                       if (($ipResolved !== false) && ($ipResolved != $hostname)) {
+                               // Okay, this works!
+                               $ip = $ipResolved;
+
+                               // Debug message
+                               $helper->getDebugInstance()->output(sprintf("[%s:] Resolved IP address is: <strong>%s</strong><br />\n",
+                                       $helper->__toString(),
+                                       $ip
+                               ));
+                       }
+               } catch (FrameworkException $e) {
+                       // Do nothing here
+               }
+
+               // Return the IP address
+               return $ip;
+       }
+}
+
+// [EOF]
+?>