Domanda

ho letto questa domanda ( Come creare un semplice proxy C #? ) che si trova vicino dei miei desideri.

Voglio semplicemente sviluppare un app C # che, per esempio, controlla Firefox, IE, ecc e registra tutte le pagine navigabili. A seconda della pagina visitata, voglio bloccare il sito (come un filtro dei genitori).

frammenti di codice / campioni sono buone, ma se si può solo dirmi qualche direzione che le classi da utilizzare sarò grato. : -)

È stato utile?

Soluzione

Le rispondo appropriato per un genitore: ala "Controllo genitori"

Si può iniziare con un server proxy quando i bambini sono meno di circa 10 anni. Dopo di che, saranno a capire come aggirare il proxy (o eseguire le proprie applicazioni client che ignorano il proxy). Negli anni dell'adolescenza primi, è possibile utilizzare i socket prime. Digitare questo programma in Visual Studio (C #).

class Program
{
    static void Main(string[] args)
    {
        try
        {
            byte[] input = BitConverter.GetBytes(1);
            byte[] buffer = new byte[4096];
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
            s.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.91"), 0));
            s.IOControl(IOControlCode.ReceiveAll, input, null);

            int bytes = 0;
            do
            {
                bytes = s.Receive(buffer);
                if (bytes > 0)
                {
                    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
                }
            } while (bytes > 0);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    }
}

Si noti che questo è solo un “frammento”, privo di una progettazione adeguata e il controllo degli errori. [Si prega di non utilizzare 'così com'è' - hai richiesto solo un inizio testa] Modificare l'indirizzo IP alla macchina. Eseguire il programma come amministratore (usa “runas” sulla riga di comando, oppure fare clic destro “Esegui come amministratore”). Solo gli amministratori possono creare e utilizzare i socket prime versioni moderne di Windows. Sedersi e guardare lo spettacolo.

Tutto il traffico di rete viene consegnato al codice (visualizzato sullo schermo, che non sarà un aspetto gradevole, con questo programma).

Il prossimo passo è quello di creare dei filtri di protocollo. Conoscere i vari protocolli di applicazione Internet (a patto che non si conosce già), modificare il programma per esaminare i pacchetti. Cercare protocollo HTTP, e salvare i dati appropriati (come richieste GET).

Personalmente ho filtri di impostazione per AIM (AOL Instant Messenger), HTTP, MSN Messenger (Windows Live Messenger), POP e SMTP. Oggi, HTTP ottiene quasi tutto ciò dato che i bambini preferiscono il muro facebook per AIM al giorno d'oggi.

Mentre i bambini raggiungono la loro adolescenza precoce-a-metà, si vuole di back-off sul monitoraggio. Alcuni dicono che questo è quello di consentire ai bambini di “crescere”, ma la vera ragione è che “ Se non si vuole sapere ”. Ho fatto marcia indietro ad appena raccolta URL delle richieste GET, e il nome utente / password (per le situazioni di emergenza) che sono in chiaro (pop, autenticazione di base, ecc.).

Non so cosa succede nella tarda adolescenza; Non riesco a cose di immagini sempre molto peggio, ma mi è stato detto che "non ho ancora visto niente".

Come qualcuno ha detto in precedenza, questo funziona solo quando girano sulla macchina target (ho eseguito una copia su tutte le macchine in casa). In caso contrario, per il semplice monitoraggio controlla il router -. Il mio ha alcune caratteristiche di registrazione

Il mio commento finale è che questa applicazione deve essere scritto in C / C ++ contro l'API Win32 direttamente, e installato come un servizio in esecuzione con diritti amministrativi sulla macchina. Non credo che questo tipo di codice è appropriato per C #. È possibile allegare un interfaccia utente in C # per il monitoraggio e il controllo. Bisogna engineering del codice in modo da avere a zero effetto notevole sul sistema.

Altri suggerimenti

Il vostro approccio dipenderà dal fatto che o non si sta installando questa applicazione sulla stessa macchina che si utilizza per navigare o su un server proxy separato.

Se si sta facendo questo su un server separato sarà più facile per raggiungere questo obiettivo in C # / codice gestito, come si sarà semplicemente scrivendo un server proxy C # che PC del cliente dovrà punto. System.Net.Sockets namespace TcpListener e TcpClient sarà il vostro amico.

Se, tuttavia, si sta installando questo sulla stessa macchina, allora date un'occhiata WinPcap e e < a href = "http://www.tamirgal.com/blog/page/SharpPcap.aspx" rel = "nofollow noreferrer"> SharpPcap e, forse, Fiddler per alcune idee.

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top