<?php
################################################################################
# Project : ABG_IPDetails #
# File : IPDetails.tst.php #
# V1.1.0 02/12/2009 : Initial #
# (cy) G. BENABOU / ABG Soft PARIS FRANCE #
# #
# An application to get details about an IP V4 address #
# #
#=== IMPORTS ==================================================================#
# ABG_IPDetail class in ABG_IPDetails.cls.php file #
# ABG_Except class in ABG_IPDetails.cls.php file #
# #
################################################################################
### A P P L I C A T I O N ###################################################
include_once('ABG_IPDetails.cls.php');
$oTester = new ABG_TestIPInfo();
try{
$oTester->PrintData();
} catch(ABG_Except $Exc_){
print($Exc_->ErrMsg);
}
################################################################################
# Class ABG_TestIPInfo #
#=== PURPOSE ==================================================================#
# Provide a test bed and a demo application for class ABG_IPDetails #
#=== PROPERTIES ===============================================================#
# Computed read #
# - str Entry : URL / IP under scrutinity #
# - array SiteInfo : Detailed results of query #
#=== METHODS ==================================================================#
# object function __construct(str Entry) #
# - Create ABG_TestIPInfo object #
# - Create oIPInfo = ABG_IPDetail object #
# - Retrieve details info by invoking oIPInfo::GetIPInfo() method #
#..............................................................................#
# void function PrintData() #
# - Construct an HTML string with details content #
# - Output it #
# #
################################################################################
Class ABG_TestIPInfo{
/*** Private Properties *****************************************************/
private $oIPInfo = null;
private $DivStyle = 'color: navy; font: 12px sans-serif;';
private $TblStyle = 'background: #FFFFCC; border: 2px solid Navy;';
### C O N S T R U C T O R ###################################################
/*** object function __construct(str XML) ***********************************
- Create the ABG_TestIPInfo object instance
*****************************************************************************/
public function __construct($_Entry=null){
try{
$this->oIPInfo = new ABG_IPDetails($_Entry);
$this->oIPInfo->GetIPInfo();
}
catch(ABG_Except $Exc_){
print($Exc_->ErrMsg);
}
catch(Exception $Exc_){
print("*** Error : ".$Exc_->GetMessage());
}
} // __construct
/*** mixed function __Get(str Ppty) *****************************************
Returns properties values
- Ppty : property name
*****************************************************************************/
private function __Get($_Ppty){
switch($_Ppty){
case 'CurEntry' : //flow
case 'SiteInfo' : if(isset($this->oIPInfo))
return $this->oIPInfo->$_Ppty;
else
throw new ABG_Except('IPInfo', K_RGFatal + 0xF3);
default : throw new ABG_Except($_Ppty, K_RGFatal + 0xF0);
}
} // __Get
/*** str function PrintData() ***********************************************
Build a HTML fragment table dispaying collected information
*****************************************************************************/
public function PrintData(){
$SiteInfo_ = $this->SiteInfo;
$CurEntry_ = $this->CurEntry;
$HTML_ = <<< ABGHereDoc
<html>
<body>
<div style="$this->DivStyle">
<form name="frmQuery" action="" method="get">
<table border="1" cellpadding="3" cellspacing="0" style="$this->TblStyle">
<tr>
<td ><input type="text" name="txtEntry" value="$CurEntry_" size="40" /></td>
<td ><input type="submit" name="btnGo" value="Query" /></td>
</tr>
</table>
</form>
</div>
<div style="$this->DivStyle">
<table border="1" cellpadding="3" cellspacing="0" style="$this->TblStyle">
ABGHereDoc;
foreach($SiteInfo_ as $Key_=>$Val_){
$HTML_.= "<tr>\n";
$HTML_.= "<td >$Key_</td>\n";
$HTML_.= "<td >$Val_ </td>\n";
$HTML_.= "</tr>\n";
}
$HTML_ .= <<< ABGHereDoc
</table>
</div>
</body>
</html>
ABGHereDoc;
print($HTML_);
return($HTML_);
} // PrintData
} #===== End class ABG_TestIPInfo ==========================================
?>
|