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
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

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!