The_Invisible
2005-09-28, 17:14:21
Hallo 3dcenter,
bin gerade dabei ein script zu schreiben das wlan router auf funktionalität/Erreichbarkeit überprüft, das script ist noch in einer sehr frühen phase, also bitte noch nichts auf funktionsbasis benmängeln, es geht mir nur um ein problem.
Zuerst mal das Script:
#!/usr/bin/php -q
<?php
/*
* WLAN-Check V 0.1
*/
class WLAN_Check
{
/*
* DEFAULT VARS
*/
var $timeout = 2;
var $error = 0;
var $hosts = array(
"Hostname" => array(),
"Address" => array(),
"Timeout" => array(),
"More" => array()
);
function addHost($Hostname,$Address,$Timeout="",$More="")
{
$obj = 0;
if($Timeout==0 || $Timeout=="")
{
$Timeout = $this->timeout;
}
$this->hosts['Hostname'][] = $Hostname;
$this->hosts['Address'][] = $Address;
$this->hosts['Timeout'][] = $Timeout;
$this->hosts['More'][] = $More;
$obj = new WLAN_Net_Operations($Hostname,$this);
return $obj;
}
}
class WLAN_Net_Operations
{
/*
* NET_FUNCTIONS
*/
var $host = array();
var $ports = array();
var $wlanMain = 0;
function WLAN_Net_Operations($Hostname,$obj_wlan_main)
{
$this->host[$Hostname] = count($this->host)+1;
$this->wlanMain = $obj_wlan_main;
}
function addPort($port)
{
$this->ports[] = $port;
}
function check()
{
foreach($this->ports as $key)
{
$this->check_Port($key);
}
}
/*
* CORE_FUNCTIONS
*/
function check_Port($port)
{
switch($port)
{
case "80":
$fp = fsockopen ("172.16.22.141", 80, $errno, $errstr, 1);
if (!$fp)
{
$this->wlanMain->error = 1;
}
break;
default:
echo "vorher: ".$this->wlanMain->error;
$this->wlanMain->error = 1;
echo "nachher: ".$this->wlanMain->error;
break;
}
}
}
$WLAN = new WLAN_Check;
$WLAN_Leitner = $WLAN->addHost("Leitner WLAN","172.16.22.143",2,"More Info not av");
$WLAN_Leitner->addPort(80);
$WLAN_Leitner->addPort(21);
$WLAN_Leitner->addPort(110);
$WLAN_Leitner->check();
#$WLAN_Matzer = $WLAN->addHost("Matzer WLAN","172.16.22.144",3,"More Info not av2");
print_r($WLAN->hosts);
print_r($WLAN_Leitner->host);
print_r($WLAN->error);
?>
so, nach diesem beispiel sollte $WLAN->error (der letzte print_r() befehl) also 1 zurückgeben, tut es aber nicht, er gibt 0 zurück wie bei der initialisierung, was aber nicht sein dürfte...
jetzt steh ich nämlich wirklich aufn schlauch, ich werde noch ein bisschen herumprobieren, aber wenn alles nichts hilft werde ich wohl eine andere lösung suchen müssen.
thx
Rene
bin gerade dabei ein script zu schreiben das wlan router auf funktionalität/Erreichbarkeit überprüft, das script ist noch in einer sehr frühen phase, also bitte noch nichts auf funktionsbasis benmängeln, es geht mir nur um ein problem.
Zuerst mal das Script:
#!/usr/bin/php -q
<?php
/*
* WLAN-Check V 0.1
*/
class WLAN_Check
{
/*
* DEFAULT VARS
*/
var $timeout = 2;
var $error = 0;
var $hosts = array(
"Hostname" => array(),
"Address" => array(),
"Timeout" => array(),
"More" => array()
);
function addHost($Hostname,$Address,$Timeout="",$More="")
{
$obj = 0;
if($Timeout==0 || $Timeout=="")
{
$Timeout = $this->timeout;
}
$this->hosts['Hostname'][] = $Hostname;
$this->hosts['Address'][] = $Address;
$this->hosts['Timeout'][] = $Timeout;
$this->hosts['More'][] = $More;
$obj = new WLAN_Net_Operations($Hostname,$this);
return $obj;
}
}
class WLAN_Net_Operations
{
/*
* NET_FUNCTIONS
*/
var $host = array();
var $ports = array();
var $wlanMain = 0;
function WLAN_Net_Operations($Hostname,$obj_wlan_main)
{
$this->host[$Hostname] = count($this->host)+1;
$this->wlanMain = $obj_wlan_main;
}
function addPort($port)
{
$this->ports[] = $port;
}
function check()
{
foreach($this->ports as $key)
{
$this->check_Port($key);
}
}
/*
* CORE_FUNCTIONS
*/
function check_Port($port)
{
switch($port)
{
case "80":
$fp = fsockopen ("172.16.22.141", 80, $errno, $errstr, 1);
if (!$fp)
{
$this->wlanMain->error = 1;
}
break;
default:
echo "vorher: ".$this->wlanMain->error;
$this->wlanMain->error = 1;
echo "nachher: ".$this->wlanMain->error;
break;
}
}
}
$WLAN = new WLAN_Check;
$WLAN_Leitner = $WLAN->addHost("Leitner WLAN","172.16.22.143",2,"More Info not av");
$WLAN_Leitner->addPort(80);
$WLAN_Leitner->addPort(21);
$WLAN_Leitner->addPort(110);
$WLAN_Leitner->check();
#$WLAN_Matzer = $WLAN->addHost("Matzer WLAN","172.16.22.144",3,"More Info not av2");
print_r($WLAN->hosts);
print_r($WLAN_Leitner->host);
print_r($WLAN->error);
?>
so, nach diesem beispiel sollte $WLAN->error (der letzte print_r() befehl) also 1 zurückgeben, tut es aber nicht, er gibt 0 zurück wie bei der initialisierung, was aber nicht sein dürfte...
jetzt steh ich nämlich wirklich aufn schlauch, ich werde noch ein bisschen herumprobieren, aber wenn alles nichts hilft werde ich wohl eine andere lösung suchen müssen.
thx
Rene