How to modify module output via another module - whois module? In drupal 7, can we access and read return value of a specific module via another module?

Specifically, I am using the whois module, and would like to access its output from a custom module, with the goal of modifying the output. 

How can I do this?  What is the suitable hook function? How can I access the output from whois before it gets rendered. 

Please guide me.

Thanks a lot.
You can change the output through preprocessing, for example in your theme's template.php file, or in your custom module (see also: https://api.drupal.org/api/drupal/modules!system!theme.api.php/function/hook_preprocess_HOOK/7). 

The $variables['content'] variable contains the content of the block to be displayed. The individual elements come from $variables['elements']. If you add:

debug(array_keys($variables['elements']));

to the script, you get the following output:

array (
  0 =&gt; 'whois_form',
  1 =&gt; 'whois_lookup_data',
  2 =&gt; '#block',
  3 =&gt; '#weight',
  4 =&gt; '#theme_wrappers',
  5 =&gt; '#children',
)


When looking at these in detail, you see that $variables['elements']['#children'] is comprised of $variables['elements']['whois_form']['#children'] and  $variables['elements']['whois_lookup_data']['#children']. 

Ultimately, $variable['content'] is comprised of $variable['elements']['#children'] (see also https://api.drupal.org/api/drupal/modules!block!block.module/function/template_preprocess_block/7)

So, there are two options: 


Alter $variables['elements']['whois_lookup_data']['#children'], and
recreate $variable['elements']['#children'] 
Alter $variable['elements']['#children'] directly.


I chose the second option below. 

To use the hook_preprocess_block hook, as shown below, the core module "Block" needs to be enabled. 

If used in a module, in yourmodule.info:

name = Whois Alter Module
description = A module to change the output of whois.
core = 7.x
package = Drupal 7 Misc
files[] = whois_alter.module
dependencies[] = block
dependencies[] = whois


In whois_alter.module:

&lt;?php
// $Id$
/**
* @file
* A module to demonstrate hook_preprocess_block to alter the output of another module
*
* This module alters the output of the whois module
*/

/**
* Implements hook_help().
*/
function whois_alter_help($path, $arg) {
  if ($path == 'admin/help#whois_alter') {
    return t('A module to alter whois output.');
  }
}


/**
* Implements hook_preprocess_block().
*/

function whois_alter_preprocess_block(&amp;$variables, $hook){

  if (isset($variables['elements']['whois_lookup_data'])) {
     $whois_modified = whois_alter_modify_whois($variables['elements']['#children']);
     $variables['elements']['#children'] = $whois_modified;
     $variables['content'] = $variables['elements']['#children'];
  }
}


function whois_alter_modify_whois($content) {
   // do what you want to do to modify the output
   return $altered_content;
}


For Theme preprocessing, just use the functional part of the module in template.php:

function yourtheme_preprocess_block(&amp;$variables, $hook){

  if (isset($variables['elements']['whois_lookup_data'])) {
     $whois_modified = yourtheme_modify_whois($variables['elements']['#children']);
     $variables['elements']['#children'] = $whois_modified;
     $variables['content'] = $variables['elements']['#children'];
  }
}


function yourtheme_modify_whois($content) {
   // do what you want to do to modify the output
   return $altered_content;
}