private bool GetServiceAndEventURL(string descriptionURL)
{
XmlDocument description = new XmlDocument();
WebRequest webRequest = WebRequest.Create(descriptionURL);
try
{
// rufe Device Description ab
description.Load(webRequest.GetResponse().GetResponseStream());
XmlNamespaceManager xmlNSManager = new XmlNamespaceManager(description.NameTable);
xmlNSManager.AddNamespace("ns", "urn:schemas-upnp-org:device-1-0");
// Internet Gateway Device?
XmlNode deviceTypeNode = description.SelectSingleNode("//ns:device/ns:deviceType/text()", xmlNSManager);
if (!deviceTypeNode.Value.Contains("InternetGatewayDevice"))
return false;
// suche Service URL
XmlNode serviceURLNode = description.SelectSingleNode("//ns:service[ns:serviceType=\"urn:schemas-upnp-org:service:WANIPConnection:1\"]/ns:controlURL/text()", xmlNSManager);
if (serviceURLNode == null)
return false;
else
m_ServiceURL = BuildURL(descriptionURL, serviceURLNode.Value);
// suche Event URL
XmlNode eventURLNode = description.SelectSingleNode("//ns:service[ns:serviceType=\"urn:schemas-upnp-org:service:WANIPConnection:1\"]/ns:eventSubURL/text()", xmlNSManager);
if (eventURLNode == null)
return false;
else
m_EventURL = BuildURL(descriptionURL, eventURLNode.Value);
return true;
}
catch (Exception e)
{
throw e;
}
}