Mit dem SCP-Webservice können Sie via SOAP programmatisch Änderungen innerhalb des Server Control Panels (SCP) vornehmen.
loginName
entspricht stets Ihrem SCP-Benutzer, das password
setzen Sie im Server Control Panel, es unterscheidet sich vom üblichen Zugang. Desweiteren ist das Aktivieren des Webservice in den SCP-Optionen an der gleichen Stelle nötig.
WSDL: https://www.servercontrolpanel.de/WSEndUser?wsdl
Parameter:
loginName = Loginname
password = Password
Return:
Strings []
Parameter:
loginName : Loginname
password : Password
vserverName : String
Return:
WebServiceSimpleResult
Parameter:
loginName : Loginname
password : Password
vserverName : String
Return:
WebServiceSimpleResult
Parameter:
loginName : Loginname
password : Password
vserverName : String
Return:
String [online|offline]
Parameter:
loginName : Loginname
password : Password
vserverName : String
Return:
String[]
Parameter:
loginName : Loginname
password : Password
routedIP : String
routedMask : String
destinationVserverName : String
destinationInterfaceMAC : String
Ändert das Routing einer FailoverIP auf einen anderen Server.
Bei einer MAC von 00:00:00:00:00:00
wird die IP aus der Routingtabelle gelöscht und diese muss vor einer weiteren Verwendung erst neu zugeordnet werden. Beim Löschauftrag muss als destinationVserverName
der Server angegeben werden, auf den die IP aktuell geroutet ist.
Parameter:
loginName : Loginname
password : Password
vserverName : String
Return:
TOKEN
Mit dem TOKEN
können über folgende URL CSV-Dateien mit Statistiken geladen werden. Dabei sind die großgeschriebenen Parameter zu ersetzen:
https://www.servercontrolpanel.de/SCP/StatsViewer?type=TYPE&TimeRange=TIMERANGE&token=TOKEN
TOKEN = return von getVServerStatToken
TYPE = Statistiken-Typ: cpu, iops, pps, traffic
TIMERANGE = Wie vielen Stunden (siehe SCP): 6, 24, 168, 744
success : boolean
message : String
Sobald der Request erfolgreich war, ist success
wahr. Wenn success
unwahr ist, so steht in der message
eine entsprechende Fehlermeldung.
id : String (Interne ID)
direction : String (INPUT | OUTPUT)
proto : String (any|tcp|udp|icmp)
target : String (ACCEPT|REJECT|DROP)
srcIP : String (IPv4 oder IPv6 IP)
srcPort : String (1-65535)
destIP : String (IPv4 oder IPv6 IP)
destPort : String (1-65535)
match : String (STATE|ICMP|LIMIT)
matchValue : String ([NEW,ESTABLISGED,RELEATED]|ICMP Code|Limit value)
srcPortRange : String (Wenn gesetzt, dann muss der Wert größer sein als srcPort)
destPortRange : String (Wenn gesetzt, dann muss der Wert größer sein als destPort)
sort : String
valid : String (Regel ist gültig)
Beim Anlegen benötigte Parameter:
direction
, target
, srcIP
oder destIP
Beim Anlegen ungültige Parameter:
valid
, id
<?php
ini_set('default_socket_timeout',360);
class VcpWebServiceEndUser {
private $wsdl_url = 'https://www.servercontrolpanel.de/WSEndUser?wsdl';
private $soap_client;
private $loginname;
private $password;
public function getArrayFrom2DWebServiceStringArray($webServiceResultArray) {
$phpArray = array();
foreach ($webServiceResultArray->return as $globalArray) {
$phpArray[$globalArray->item[0]] = $globalArray->item[1];
}
return $phpArray;
}
function __construct($loginname, $password) {
$this->loginname = $loginname;
$this->password = $password;
$this->soap_client = new SOAPClient($this->wsdl_url, array('cache_wsdl' => 0));
// TODO error if no connection to soap server ...
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function getVServers() {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
);
$getVServerResult = $this->soap_client->getVServers($params);
return $getVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerState($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerState($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerLoad($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerLoad($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerUptime($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerUptime($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String[]
*/
public function getVServerIPs($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerIPs($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function startVServer($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->startVServer($params);
if ($startVServerResult->return->success) {
return $startVServerResult->return->exceptionMessage;
} else {
if ($startVServerResult->return->exceptionMessage != NULL) {
return $startVServerResult->return->exceptionMessage;
} else {
return "undefined error";
}
}
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function stopVServer($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$stopVServerResult = $this->soap_client->stopVServer($params);
if ($stopVServerResult->return->success) {
return $stopVServerResult->return->exceptionMessage;
} else {
if ($stopVServerResult->return->exceptionMessage != NULL) {
return $stopVServerResult->return->exceptionMessage;
} else {
return "undefined error";
}
}
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function getFirewall($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
return$this->soap_client->getFirewall($params);
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function addFirewallRule($vserverName, $direction, $proto, $srcip, $srcport, $srcportrange, $destip, $destport, $destportrange, $match, $matchvalue, $target) {
try {
$rule_params = array(
'direction' => $direction, // string needed
'proto' => $proto, // string needed
'srcIP' => $srcip,
'srcPort' => $srcport,
'destIP' => $destip,
'destPort' => $destport,
'match' => $match,
'matchValue' => $matchvalue,
'srcPortRange' => $srcportrange,
'destPortRange' => $destportrange,
'target' => $target,
'valid' => false,
'id' => 0,
);
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName,
'rule' => array($rule_params),
);
return $this->soap_client->addFirewallRule($params);
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
}
?>
$vcpWebServiceEndUser = new VcpWebServiceEndUser("<VCPLOGINNAME>", "<VCPLOGINPASSWORD>");
var_dump($vcpWebServiceEndUser->getVServers());