2016-04-08 11 views
2

(programmatisch in C#) Hallo, ich möchte alle Web-Aktivitäten und Web-URL in einem beliebigen Browser verfolgt und protokollieren. Ich weiß, wir können dies tun, während die Verwendung von lokalen Proxy-Server und Routing, aber ich möchte wissen, wie können wir das ohne den lokalen Proxy-Server ohne Routing tun.C# Wie werden alle Webaktivitäten und Web-URLs vom Client ohne Verwendung des lokalen Proxy-Servers verfolgt?

Was ich genau entwickeln möchte: - C# wpf Anwendung verfolgen alle Web-Aktivitäten und dump alle Daten (URL-Name + Time + Duration) in der Datenbank.

+2

'Was ich genau entwickeln möchte: - C# wpf Anwendung verfolgen alle Web-Aktivitäten und dump alle Daten (URL-Name + Zeit + Dauer) in der Datenbank.' Eine Anwendung, die Verkehr abfängt und es dann an ihr Ziel weiterleitet heißt ein Proxy-Server. –

+0

ja, aber ich möchte dies ohne Proxy-Server tun. –

+0

Was Sie beschreiben *** ist *** ein Proxy-Server. Es wäre wahrscheinlich am einfachsten [schreibe wireshark, um die gewünschten Daten zu erfassen und in eine Datenbank zu schreiben] (https://wiki.wireshark.org/Tools#Intrusion_Analysis_.2F_SQL_Database_Support). –

Antwort

1

Hallo, ich war auch für dieses Problem gesucht Lösung einige, wie ich fand 1-Lösung, wie URL von Chrom erhalten hier ist der Link

Retrieve current URL from C# windows forms application

+0

Bitte fügen Sie einige Inhalte aus der Verknüpfung. – Robert

+0

Bitte lesen Sie die Frage sorgfältig durch? –

+0

Ich bekomme URL auf Chrome und IE Ich hoffe, der erste Teil Ihres Problems ist in oben genannten Post jetzt im Suchen nach der Zeit, wenn Browser oder Tab schließen erhalten die gesamte Besuchszeit, wenn Sie keine Hilfe bekommen bitte hier posten – noob

0

Klasse browserlocation { public struct URLDetails {

 public String URL; 


     public String Title; 
    } 
    public static URLDetails[] InternetExplorer() 
    { 
     Process[] pname = Process.GetProcessesByName("iexplore"); 
     if (pname.Length == 0) { 
      Console.Write("Process is not running "); 
     } 

     System.Collections.Generic.List<URLDetails> URLs = new System.Collections.Generic.List<URLDetails>(); 
     var shellWindows = new SHDocVw.ShellWindows(); 
     foreach (SHDocVw.InternetExplorer ie in shellWindows) 
      URLs.Add(new URLDetails() { URL = ie.LocationURL, Title = ie.LocationName }); 
     return URLs.ToArray(); 
    } 
    public static string GetChromeUrl(Process process) 
    { 
     if (process == null) 
      throw new ArgumentNullException("process"); 

     if (process.MainWindowHandle == IntPtr.Zero) 
      return null; 

     AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle); 
     if (element == null) 
      return null; 

     AutomationElement edit = element.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit)); 
     return ((ValuePattern)edit.GetCurrentPattern(ValuePattern.Pattern)).Current.Value as string; 


    } 

} 

Klasse Programm

{ 

    static void Main(string[] args) 
    { 
     Console.WriteLine("Internet Explorer: "); 
     (new List<browserlocation.URLDetails>(browserlocation.InternetExplorer())).ForEach(u => 
     { 
      Console.WriteLine("[{0}]\r\n{1}\r\n", u.Title, u.URL); 
     }); 

     Console.Write("\n press enter to view Chrome current tab URL"); 
     Console.ReadLine(); 

     foreach (Process process in Process.GetProcessesByName("chrome")) 
     { 
      string url = browserlocation.GetChromeUrl(process); 
      if (url == null) 
       continue; 

      Console.WriteLine("CH Url for '" + process.MainWindowTitle + "' is " + url); 
      Console.ReadLine(); 
     } 
    } 
}