27
Feb
pinging technorati technique, code
the technique: trick to increase technorati rank
the output:
C:\\>type c:\\urls.txt http://www.testerson.com|Testerson http://www.testertown.com|Testertown C:\\>XmlrpcPing.exe c:\\urls.txt Success: http://www.testerson.com Success: http://www.testertown.com C:\\>XmlrpcPing.exe c:\\urls.txt Failed: http://www.testerson.com You just sent a ping, please only ping when you update Failed: http://www.testertown.com You just sent a ping, please only ping when you update
the quick & dirty c# code to repeatedly xmlrpc ping technorati (some heavy lifting here)
[csharp]
class Program
{
static void Main(string[] args)
{
if (args[0] != null)
{
string url, name, output;
string[] urlnames = File.ReadAllLines(args[0]);
foreach (string urlname in urlnames)
{
url = urlname.Split('|')[0];
name = urlname.Split('|')[1];
if (Send("http://rpc.technorati.com/rpc/ping", name, url, out output))
Console.WriteLine("Success: {0}", url);
else Console.WriteLine("Failed: {0} {1}", url, output);
}
}
}
public static bool Send(string pingUrl, string name, string url, out string output)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pingUrl);
request.Method = "POST";
request.ContentType = "text/xml";
Stream pingstream = (Stream)request.GetRequestStream();
XmlTextWriter xtw = new XmlTextWriter(pingstream, Encoding.UTF8);
xtw.WriteStartDocument();
xtw.WriteStartElement("methodCall");
xtw.WriteElementString("methodName", "weblogUpdates.ping");
xtw.WriteStartElement("params");
xtw.WriteStartElement("param");
xtw.WriteElementString("value", name);
xtw.WriteEndElement();
xtw.WriteStartElement("param");
xtw.WriteElementString("value", url);
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader respSr = new StreamReader(response.GetResponseStream());
XmlDocument xml = new XmlDocument();
string pingResponseXml = respSr.ReadToEnd();
xml.LoadXml(pingResponseXml);
respSr.Close();
response.Close();
output = xml.SelectSingleNode("methodResponse/params/param/value/struct/member[2]/value").InnerText;
return "0" == xml.SelectSingleNode("methodResponse/params/param/value/struct/member[1]/value/boolean").InnerText;
}
catch (Exception ex)
{
output = ex.Message;
return false;
}
}
}
[/csharp]
questions? leave a comment