using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Net;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
namespace CreateSites
{
class run
{
String ServerIP = "10.10.10.10";
XmlDocument pagexmldoc = new XmlDocument();
StreamReader oReader = new StreamReader("CreateSites.txt");
StreamWriter writer = new StreamWriter("Results.txt");
public void End()
{
try
{
writer.Close();
}
catch { }
try
{
oReader.Close();
}
catch { }
}
public void Begin()
{
String sLine = String.Empty;
while (sLine != null)
{
sLine = oReader.ReadLine();
if (sLine != null)
{
String sDomain, sClientID, FTPUser, FTPPassword;
String[] LineArr = sLine.Split(new char[] { ',' });
sClientID = LineArr[0];
sDomain = LineArr[1];
FTPUser = LineArr[2];
FTPPassword = LineArr[3];
String Packet = BuildXML(sDomain, sClientID, FTPUser, FTPPassword);
SendXMLRequest(sDomain, Packet);
}
}
}
private String BuildXML(String sDomain, String sClientID, String FTPUser, String FTPPassword )
{
StringBuilder sb = new StringBuilder();
sb.Append("<packet version=\"1.4.2.0\">");
sb.Append("<domain>");
sb.Append("<add>");
sb.Append(" <gen_setup>");
sb.AppendFormat(" <name>{0}</name>", sDomain);
sb.AppendFormat(" <client_id>{0}</client_id>", sClientID);
sb.Append(" <htype>vrt_hst</htype>");
sb.Append(" <ip_address>10.7.30.19</ip_address>");
sb.Append(" <status>0</status>");
sb.Append(" </gen_setup>");
//sb.Append(" <template-name>default</template-name>");
sb.Append(" <hosting>");
sb.Append(" <vrt_hst>");
sb.AppendFormat(" <ftp_login>{0}</ftp_login>", FTPUser);
sb.AppendFormat(" <ftp_password>{0}</ftp_password>", FTPPassword);
sb.Append(" <php>true</php>");
sb.Append(" <php_safe_mode>true</php_safe_mode>");
sb.Append(" <ip_address>10.7.30.19</ip_address>");
sb.Append(" </vrt_hst>");
sb.Append(" </hosting>");
sb.Append("</add>");
sb.Append("</domain>");
sb.Append("</packet>");
return sb.ToString();
}
private static bool RemoteCertificateValidation(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors != SslPolicyErrors.RemoteCertificateNotAvailable)
return true;
Console.WriteLine("Certificate error: {0}", sslPolicyErrors);
// Do not allow this client to communicate with unauthenticated servers.
return false;
}
private void SendXMLRequest( String sDomain, String packet)
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(RemoteCertificateValidation);
XmlSend request = new XmlSend();
XmlDocument xmldoc = new XmlDocument();
try
{
xmldoc.LoadXml(packet);
}
catch
{
Console.WriteLine("Failed to build XML");
return;
}
try
{
String sServer = String.Format("https://{0}:8443/enterprise/control/agent.php", ServerIP);
XmlDocument result = null;
NameValueCollection nvc = new NameValueCollection();
nvc.Add("HTTP_AUTH_LOGIN", "admin");
nvc.Add("HTTP_AUTH_PASSWD", "Frefr3ke");
result = request.Send(xmldoc, sServer, nvc);
String sResult = String.Empty;
try
{
sResult = result.DocumentElement.SelectSingleNode("/packet/domain/add/result/status").InnerText;
if (String.Compare(sResult, "ok", true) == 0)
{
Console.WriteLine("Domain {0} Success", sDomain);
}
else
{
Console.WriteLine("Domain {0} Failed - Error {1}", sDomain, result.DocumentElement.SelectSingleNode("/packet/domain/add/result/errtext").InnerText);
writer.WriteLine("Domain {0} Failed - Error {1}", sDomain, result.DocumentElement.SelectSingleNode("/packet/domain/add/result/errtext").InnerText);
return;
}
}
catch
{
writer.WriteLine(packet);
}
}
catch (Exception e)
{
Console.Write("Error:: {0}", e.Message);
}
}
}
}