Netcup SCP Webservice
SOAP WebService
Inhaltsverzeichnis
Web Service Methods
WSDL: https://www.servercontrolpanel.de/WSEndUser?wsdl
Für das SCP verwenden Sie bitte die folgende URL: https://www.servercontrolpanel.de:443/WSEndUser?wsdl
getVServers
Parameter:
loginName = Loginname password = Password
Return:
Strings []
startVServer
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
WebServiceSimpleResult
stopVServer
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
WebServiceSimpleResult
getVServerState
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String [online|offline]
getVServerLoad
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String load (1min, 5min, 15min)
getVServerUptime
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String uptime in seconds
getVServerProcesses
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String
getVServerIPs
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String[]
getFirewall
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
FilterObject[]
addFirewallRule
Parameter:
loginName : Loginname password : Password vserverName : String rule : FilterObject[]
Es empfiehlt sich möglichst viele Regeln auf einmal hinzuzufügen, da dies die Skriptlaufzeit erheblich reduziert.
Return:
WebServiceSimpleResult
deleteFirewallRule
Parameter:
loginName : Loginname password : Password vserverName : String rule : FilterObject[]
Es empfiehlt sich möglichst viele Regeln auf einmal zu löschen, da dies die Skriptlaufzeit erheblich reduziert.
Return:
WebServiceSimpleResult
changeIPRouting
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.
getVServerStatToken
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 viele Stunden (siehe SCP): 6, 24, 168, 744
Web Service Objects
WebServiceSimpleResult
success : boolean message : String
Sobald der Request erfogreich war, ist "success" wahr. Wenn "success" unwahr ist, so steht in der message eine entsprechende Fehlermeldung.
FilterObject
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 Klasse
<?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(); } } } ?>
PHP Anwendungsbeispiele
getVServers
$vcpWebServiceEndUser = new VcpWebServiceEndUser("<VCPLOGINNAME>", "<VCPLOGINPASSWORD>"); var_dump($vcpWebServiceEndUser->getVServers());