Ermittelt die Proxy Einstellungen von Mozilla Firefox
using System;
using System.Collections;
using System.ComponentModel;
using System.Net;
using System.Net.Sockets;
using System.Xml;
using System.Threading;
using System.Text;
using System.IO;
using Microsoft.Win32;
using System.Diagnostics;
namespace Network.Helper
{
/// <summary>
/// Ermittelt die Proxy Einstellungen von Mozilla Firefox
/// </summary>
public class MozillaFirefoxProxySettings
{
/// <summary>
/// Adresse des eingestellten Proxyservers.
/// </summary>
public static string IP
{
get
{
try
{
string data = read_key("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "AppData");
string[] files = System.IO.Directory.GetDirectories(data + "\\Mozilla\\Firefox\\Profiles");
foreach (string profile in files)
{
StreamReader reader = File.OpenText(profile + "\\prefs.js"); // open file
for (int i = 0; -1 != reader.Peek(); i++) // read file
{
string line = reader.ReadLine();
// search XXX in user_pref("network.proxy.http", "XXX");
if (line.StartsWith("user_pref(\"network.proxy.http\", \""))
{
line = line.Remove(0, "user_pref(\"network.proxy.http\", \"".Length);
line = line.Substring(0, line.Length - 3);
return line;
}
}
reader.Close();
}
throw new Exception("CouldNotFindSettings");
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString() + " StackTrace: " + ex.StackTrace);
throw ex;
}
}
}
/// <summary>
/// Port des eingestellten Proxyservers.
/// </summary>
public static int Port
{
get
{
try
{
string data = read_key("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "AppData");
string[] files = System.IO.Directory.GetDirectories(data + "\\Mozilla\\Firefox\\Profiles");
foreach (string profile in files)
{
StreamReader reader = File.OpenText(profile + "\\prefs.js"); // open file
for (int i = 0; -1 != reader.Peek(); i++) // read file
{
string line = reader.ReadLine();
// search YYY in user_pref("network.proxy.http_port", YYY);
if (line.StartsWith("user_pref(\"network.proxy.http_port\", "))
{
line = line.Remove(0, "user_pref(\"network.proxy.http_port\", ".Length);
return int.Parse(line.Substring(0, line.Length - 2));
}
}
reader.Close();
}
throw new Exception("CouldNotFindSettings");
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString() + " StackTrace: " + ex.StackTrace);
throw ex;
}
}
}
/// <summary>
/// Zum Auslesen von Werten aus der Registrierung.
/// </summary>
/// <param name="subKey">Sub Key.</param>
/// <param name="keyName">Key Name.</param>
/// <returns>Schluesselwert als String oder wenn nicht gefunden "fault".</returns>
static private string read_key(string subKey, string keyName)
{
try
{
RegistryKey key = Registry.CurrentUser.OpenSubKey(subKey, true);
string asdasd = ((string)key.GetValue(keyName, keyName));
return asdasd;
}
catch
{
return "fault";
}
}
}
}
1 Kommentare zum Snippet