Feedback

C# - Ermittelt die Proxy Einstellungen von Mozilla Firefox

Veröffentlicht von am 27.02.2006
(2 Bewertungen)
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";
            }
        }
    }
}
Abgelegt unter Proxy, Mozilla, Firefox, Proxyserver.

1 Kommentare zum Snippet

Gregori schrieb am 27.06.2007:
Würde auf einheitlichen Codestil achten ;) Sonst ist das Snippet ohne grössere Änderungen nicht wirklich brauchbar.

Beziehe mich jetzt auf die Variabelnamen und der Methodenname zum Lesen der Regestry

Gruss,
Gregor
 

Logge dich ein, um hier zu kommentieren!