begin process at 2010 07 31 04:46:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > GESTION D'ERREUR STANDARD

GESTION D'ERREUR STANDARD


 Information sur la source

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Niveau :Initié Date de création :23/05/2003 Date de mise à jour :09/09/2006 16:25:43 Vu :16 052

Auteur : captainmagic

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
L'originalité de cette gestion est qu'elle regroupe un maximum d'information sur l'erreur, le serveur et le visiteur.

Cette gestion d'erreur produit deux résultats:

1 fichier HTML, dans le sous-répertoire d'application "logs". Créez-le s'il n'existe pas.
1 e-mail, avec le meme contenu que le fichier ci-dessus, au format HTML également.


un visiteur qui a eu un problème sur le site ne rend compte de celle-ci que presque jamais au webmaster, alors qu'un mail systématique permet de ne rien laisser passer.
Quand l erreur nécessite de connaitre la version de windows ou d'internet explorer par exemple, il est souvent impossible de joindre la personne.
Dernier avantage, pour développer mettez la gestion d'erreur en place en premier, cela fait gagner du temps pour débugguer.

Dans tout les cas vous gagnerez du temps.

Elle est facile a mettre en place:

1) créez un fichier module de classe "Gestion_Erreur.vb" et de remplacez tout sont contenu par le texte ci-dessous.

2) il faut déclarer la classe dans le fichier web.config pour qu'elle soit initialisée et utilisée:
Ajoutez les lignes suivantes entre les balises <system.web> et </system.web> :

        <httpModules>
            <add name="Gestion_Erreur" type="<nom de projet>.Gestion_Erreur,<nom de projet>" />
        </httpModules>

<nom de projet>= le nom du projet ASP.NET dans lequel vous ajoutez le module de classe.

3) modifiez les valeurs de la fonction MAILError ci-dessous avec vos valeurs de serveur SMTP, émetteur et destinataire(s) d'e-mail.

texte du module de class Gestion_Erreur.vb
------------------------------- ------------------------------------

Source

  • Imports System
  • Imports System.Data
  • Imports System.Globalization
  • Imports System.IO
  • Imports System.Net
  • Imports System.Net.Sockets
  • Imports System.Threading
  • Imports System.Web
  • Imports System.Web.Mail
  • Imports System.Web.SessionState
  • Public Class Gestion_Erreur
  • Implements IHttpModule
  • Dim Context As HttpContext = HttpContext.Current
  • ' l'usage de IHttpModule impose l'existence des subs "init" et "dispose".
  • Public Sub Init(ByVal application As HttpApplication) Implements IHttpModule.Init
  • AddHandler application.Error, AddressOf Me.Application_Error
  • End Sub 'Init
  • Public Sub Dispose() Implements IHttpModule.Dispose
  • End Sub 'Dispose
  • Private Sub Application_Error(ByVal [source] As [Object], ByVal e As EventArgs)
  • Dim baliseSTART As String
  • Dim baliseEND As String
  • Dim strMSG As String
  • Dim objErr As Object
  • Dim errPATH As String
  • Dim BL_TRANSMIT_ERROR As Boolean
  • baliseSTART = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//FR'>" & vbCrLf & _
  • "<HTML>" & vbCrLf & _
  • "<HEAD>" & vbCrLf & _
  • "<title>Ardag</title><LINK href='Styles.css' type='text/css' rel='stylesheet'>" & vbCrLf & _
  • "<META content='fr' name='LANGUAGE'>" & vbCrLf & _
  • "<META http-equiv='content-language' content='fr'>" & vbCrLf & _
  • "<META content='FRENCH' name='HTTP.LANGUAGE'>" & vbCrLf & _
  • "<META http-equiv='Content-Type' content='text/html'>" & vbCrLf & _
  • "<META http-equiv='Pragma' content='no-cache'>" & vbCrLf & _
  • "<META http-equiv='Expires' content='0'>" & vbCrLf & _
  • "<META content='Ardag - le site officiel : Retrouvez l'univers d'Ardag. Profitez des dernières news. Découvrez le clip et écoutez les chansons. Biographie, Interview, Musiciens, Musique de film.' name='DESCRIPTION'>" & vbCrLf & _
  • "<META content='' name='KEYWORDS'>" & vbCrLf & _
  • "<META content='Francois Rossello' name='AUTHOR'>" & vbCrLf & _
  • "<META content='Francois Rossello' name='publisher'>" & vbCrLf & _
  • "<META content='Francois Rossello' name='copyright'>" & vbCrLf & _
  • "<META content='Francois Rossello' name='reply-to'>" & vbCrLf & _
  • "<META content='index,follow' name='robots'>" & vbCrLf & _
  • "<META content='10' name='revisit-after'>" & vbCrLf & _
  • "<meta content='JavaScript' name='vs_defaultClientScript'>" & vbCrLf & _
  • "<meta content='http://schemas.microsoft.com/intellisense/ie5' name='vs_targetSchema'>" & vbCrLf & _
  • "</HEAD>" & vbCrLf & _
  • "<body>" & vbCrLf & _
  • "<TABLE WIDTH=100% HEIGHT=100% cellspacing=4 cellpadding=4 border=1>"
  • baliseEND = "</TABLE>" & vbCrLf & _
  • "</body>" & vbCrLf & _
  • "</html>"
  • ' ### Informations toujours disponibles
  • strMSG = strMSG & "<TR><TD>Heure GMT</TD><TD>" & System.DateTime.Now.ToUniversalTime.ToString & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Est authentifié ?</TD><TD>" & Context.Request.IsAuthenticated & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>La connexion est sécurisée ?</TD><TD>" & Context.Request.IsSecureConnection() & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>HTTP_REFERER</TD><TD>" & Context.Request.ServerVariables("HTTP_REFERER") & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Fichier</TD><TD>" & Context.Request.PhysicalPath & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>URL</TD><TD>" & Context.Request.RawUrl & "</TD></TR>"
  • ' ### information server et session
  • If Context.Session Is Nothing Then
  • strMSG = strMSG & "<TR><TD>Session</TD><TD>Ko</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Server</TD><TD>Ko</TD></TR>"
  • strMSG = strMSG & "<TR><TD>ID_VISIT</TD><TD>" & myParams.ID_VISIT & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Erreur context</TD><TD>" & HttpContext.Current.Error.ToString() & "</TD></TR>"
  • Else
  • strMSG = strMSG & "<TR><TD>Session</TD><TD>" & Context.Session.SessionID & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Erreur serveur</TD><TD>" & Context.Server.GetLastError.InnerException.ToString & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>ID_VISIT</TD><TD>" & myParams.ID_VISIT & "</TD></TR>"
  • strMSG = strMSG & "<TR><TD>Erreur context</TD><TD>" & HttpContext.Current.Error.ToString() & "</TD></TR>"
  • End If
  • objErr = baliseSTART & strMSG & getVisiteurInfo_mail() & baliseEND
  • ' Détermine le chemin de l'erreur et son nom de fichier.
  • errPATH = Context.Request.PhysicalApplicationPath & "Logs\Err_" & System.DateTime.Now.ToUniversalTime.Ticks.ToString & ".htm"
  • ' ecrire l erreur sur le disque et l'envoyer par e-mail
  • BL_TRANSMIT_ERROR = LOGError(errPATH, objErr) And MAILError(objErr)
  • End Sub 'Application_Error
  • Private Function LOGError(ByVal errPATH As String, ByVal objErr As Object)
  • On Error GoTo GestErr
  • ' ### Ecriture d'une erreur sur le disque dans le repertoire errPATH.
  • Dim noFile As Integer = FreeFile()
  • FileSystem.FileOpen(noFile, errPATH, OpenMode.Output, OpenAccess.Write, OpenShare.Shared)
  • FileSystem.Print(noFile, objErr)
  • FileSystem.FileClose(noFile)
  • Return True
  • Exit Function
  • GestErr:
  • Err.Clear() ' si par exemple le disque est plein il faut continuer pour envoyer le mail
  • Return False
  • End Function
  • Private Function MAILError(ByVal objErr As Object)
  • Dim ErrMail As New MailMessage()
  • With ErrMail
  • .From = "postmaster@ardag-music.com"
  • .To = "postmaster@ardag-music.com"
  • .Subject = "Erreur sur le Site www.ardag-music.com"
  • .BodyFormat = MailFormat.Html
  • .Priority = MailPriority.Normal
  • .Body = objErr
  • End With
  • SmtpMail.SmtpServer = "mail.ardag-music.com"
  • SmtpMail.Send(ErrMail)
  • Return True
  • Exit Function
  • End Function
  • Private Function getVisiteurInfo_mail() As String
  • Dim strVisiteur As String
  • Dim strIP As String
  • Dim strNM As String
  • Dim item As Object
  • On Error Resume Next ' cas ou context.session is nothing
  • strIP = GetUsrIp()
  • strNM = getHostName(strIP)
  • strVisiteur = strVisiteur & "<TR><TD>DT_VISIT</TD><TD>" & System.DateTime.Now & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>IP_VISIT</TD><TD>" & strIP & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>NM_VISIT</TD><TD>" & strNM & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>HTTP_REFERER</TD><TD>" & Context.Request.ServerVariables("HTTP_REFERER") & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>SessionID</TD><TD>" & Context.Session.SessionID & "</TD></TR>"
  • With Context.Request
  • strVisiteur = strVisiteur & "<TR><TD>AcceptTypes</TD><TD>" & Left(Join(.AcceptTypes), 255) & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>UserLanguages</TD><TD>" & Join(.UserLanguages) & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>HasKeys</TD><TD>" & .ServerVariables.HasKeys.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>UserAgent</TD><TD>" & .UserAgent.ToString & "</TD></TR>"
  • End With
  • With Context.Request.Browser
  • strVisiteur = strVisiteur & "<TR><TD>ActiveXControls</TD><TD>" & .ActiveXControls.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>AOL</TD><TD>" & .AOL.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>BackgroundSounds</TD><TD>" & .BackgroundSounds.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Beta</TD><TD>" & .Beta.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Browser</TD><TD>" & .Browser.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>CDF</TD><TD>" & .CDF.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>ClrVersion</TD><TD>" & .ClrVersion.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Cookies</TD><TD>" & .Cookies.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Crawler</TD><TD>" & .Crawler.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>EcmaScriptVersion</TD><TD>" & .EcmaScriptVersion.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Frames</TD><TD>" & .Frames.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>JavaApplets</TD><TD>" & .JavaApplets.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>JavaScript</TD><TD>" & .JavaScript.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>MajorVersion</TD><TD>" & .MajorVersion & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>MinorVersion</TD><TD>" & .MinorVersion & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>MSDomVersion</TD><TD>" & .MSDomVersion.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Platform</TD><TD>" & .Platform & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Tables</TD><TD>" & .Tables.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>TagWriter</TD><TD>" & .TagWriter.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Type</TD><TD>" & .Type.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>VBScript</TD><TD>" & .VBScript.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Version</TD><TD>" & .Version.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>W3CDomVersion</TD><TD>" & .W3CDomVersion.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Win16</TD><TD>" & .Win16.ToString & "</TD></TR>"
  • strVisiteur = strVisiteur & "<TR><TD>Win32</TD><TD>" & .Win32.ToString & "</TD></TR>"
  • End With
  • ' listing de toutes les variables serveur
  • For Each item In Context.Request.ServerVariables
  • strVisiteur = strVisiteur & "<TR><TD>" & item & "</TD><TD>" & _
  • Context.Request.ServerVariables(item) & "</TD></TR>"
  • Next
  • On Error GoTo 0 ' obligatoirement désactiver on error resume next avant de quitter une fonction
  • Return strVisiteur
  • End Function
  • Private Function getHostName(ByVal adIp As String) As String
  • ' nom machine du visiteur
  • Dim sIP As String
  • Dim posCHAR As Int16
  • posCHAR = InStr(adIp, ":", CompareMethod.Text)
  • adIp = Mid(adIp, posCHAR + 1)
  • Dim myIP As IPHostEntry = Dns.Resolve(adIp)
  • sIP = myIP.HostName
  • 'sIP += ("Adresse IP :" & myIP.AddressList(0).ToString & "<br>")
  • Return sIP
  • End Function
  • Private Function GetUsrIp() As String
  • ' retrouver l'adresse d'origine si le visiteur est derriere un proxy
  • GetUsrIp = Context.Request.ServerVariables("REMOTE_HOST")
  • If Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR") <> "" Then
  • GetUsrIp = GetUsrIp & ":" & Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  • End If
  • End Function
  • End Class
Imports System
Imports System.Data
Imports System.Globalization
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Imports System.Web
Imports System.Web.Mail
Imports System.Web.SessionState

Public Class Gestion_Erreur
    Implements IHttpModule
    Dim Context As HttpContext = HttpContext.Current

    ' l'usage de IHttpModule impose l'existence des subs "init" et "dispose".
    Public Sub Init(ByVal application As HttpApplication) Implements IHttpModule.Init
        AddHandler application.Error, AddressOf Me.Application_Error
    End Sub 'Init
    Public Sub Dispose() Implements IHttpModule.Dispose
    End Sub 'Dispose 

    Private Sub Application_Error(ByVal [source] As [Object], ByVal e As EventArgs)
        Dim baliseSTART As String
        Dim baliseEND As String
        Dim strMSG As String

        Dim objErr As Object
        Dim errPATH As String
        Dim BL_TRANSMIT_ERROR As Boolean

        baliseSTART = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//FR'>" & vbCrLf & _
			  "<HTML>" & vbCrLf & _
			  "<HEAD>" & vbCrLf & _
			  "<title>Ardag</title><LINK href='Styles.css' type='text/css' rel='stylesheet'>" & vbCrLf & _
			  "<META content='fr' name='LANGUAGE'>" & vbCrLf & _
			  "<META http-equiv='content-language' content='fr'>" & vbCrLf & _
			  "<META content='FRENCH' name='HTTP.LANGUAGE'>" & vbCrLf & _
			  "<META http-equiv='Content-Type' content='text/html'>" & vbCrLf & _
			  "<META http-equiv='Pragma' content='no-cache'>" & vbCrLf & _
			  "<META http-equiv='Expires' content='0'>" & vbCrLf & _
			  "<META content='Ardag - le site officiel : Retrouvez l'univers d'Ardag. Profitez des dernières news. Découvrez le clip et écoutez les chansons. Biographie, Interview, Musiciens, Musique de film.' name='DESCRIPTION'>" & vbCrLf & _
			  "<META content='' name='KEYWORDS'>" & vbCrLf & _
			  "<META content='Francois Rossello' name='AUTHOR'>" & vbCrLf & _
			  "<META content='Francois Rossello' name='publisher'>" & vbCrLf & _
			  "<META content='Francois Rossello' name='copyright'>" & vbCrLf & _
			  "<META content='Francois Rossello' name='reply-to'>" & vbCrLf & _
			  "<META content='index,follow' name='robots'>" & vbCrLf & _
			  "<META content='10' name='revisit-after'>" & vbCrLf & _
			  "<meta content='JavaScript' name='vs_defaultClientScript'>" & vbCrLf & _
			  "<meta content='http://schemas.microsoft.com/intellisense/ie5' name='vs_targetSchema'>" & vbCrLf & _
			  "</HEAD>" & vbCrLf & _
		          "<body>" & vbCrLf & _
                          "<TABLE WIDTH=100% HEIGHT=100% cellspacing=4 cellpadding=4 border=1>"

        baliseEND = "</TABLE>" & vbCrLf & _
        "</body>" & vbCrLf & _
        "</html>"

        ' ### Informations toujours disponibles
        strMSG = strMSG & "<TR><TD>Heure GMT</TD><TD>" & System.DateTime.Now.ToUniversalTime.ToString & "</TD></TR>"
        strMSG = strMSG & "<TR><TD>Est authentifié ?</TD><TD>" & Context.Request.IsAuthenticated & "</TD></TR>"
        strMSG = strMSG & "<TR><TD>La connexion est sécurisée ?</TD><TD>" & Context.Request.IsSecureConnection() & "</TD></TR>"
        strMSG = strMSG & "<TR><TD>HTTP_REFERER</TD><TD>" & Context.Request.ServerVariables("HTTP_REFERER") & "</TD></TR>"
        strMSG = strMSG & "<TR><TD>Fichier</TD><TD>" & Context.Request.PhysicalPath & "</TD></TR>"
        strMSG = strMSG & "<TR><TD>URL</TD><TD>" & Context.Request.RawUrl & "</TD></TR>"

        ' ### information server et session
        If Context.Session Is Nothing Then
            strMSG = strMSG & "<TR><TD>Session</TD><TD>Ko</TD></TR>"
            strMSG = strMSG & "<TR><TD>Server</TD><TD>Ko</TD></TR>"
            strMSG = strMSG & "<TR><TD>ID_VISIT</TD><TD>" & myParams.ID_VISIT & "</TD></TR>"
            strMSG = strMSG & "<TR><TD>Erreur context</TD><TD>" & HttpContext.Current.Error.ToString() & "</TD></TR>"

        Else
            strMSG = strMSG & "<TR><TD>Session</TD><TD>" & Context.Session.SessionID & "</TD></TR>"
            strMSG = strMSG & "<TR><TD>Erreur serveur</TD><TD>" & Context.Server.GetLastError.InnerException.ToString & "</TD></TR>"
            strMSG = strMSG & "<TR><TD>ID_VISIT</TD><TD>" & myParams.ID_VISIT & "</TD></TR>"
            strMSG = strMSG & "<TR><TD>Erreur context</TD><TD>" & HttpContext.Current.Error.ToString() & "</TD></TR>"

        End If

        objErr = baliseSTART & strMSG & getVisiteurInfo_mail() & baliseEND

	' Détermine le chemin de l'erreur et son nom de fichier.
        errPATH = Context.Request.PhysicalApplicationPath & "Logs\Err_" & System.DateTime.Now.ToUniversalTime.Ticks.ToString & ".htm"
        
        ' ecrire l erreur sur le disque et l'envoyer par e-mail
        BL_TRANSMIT_ERROR = LOGError(errPATH, objErr) And MAILError(objErr)

    End Sub 'Application_Error

    Private Function LOGError(ByVal errPATH As String, ByVal objErr As Object)
        On Error GoTo GestErr
        ' ### Ecriture d'une erreur sur le disque dans le repertoire errPATH.
        Dim noFile As Integer = FreeFile()
        FileSystem.FileOpen(noFile, errPATH, OpenMode.Output, OpenAccess.Write, OpenShare.Shared)
        FileSystem.Print(noFile, objErr)
        FileSystem.FileClose(noFile)
        Return True
        Exit Function
GestErr:
        Err.Clear() ' si par exemple le disque est plein il faut continuer pour envoyer le mail
        Return False
    End Function

    Private Function MAILError(ByVal objErr As Object)
        Dim ErrMail As New MailMessage()
        With ErrMail
            .From = "postmaster@ardag-music.com"
            .To = "postmaster@ardag-music.com"
            .Subject = "Erreur sur le Site www.ardag-music.com"
            .BodyFormat = MailFormat.Html
            .Priority = MailPriority.Normal
            .Body = objErr
        End With
        SmtpMail.SmtpServer = "mail.ardag-music.com"
        SmtpMail.Send(ErrMail)
        Return True
        Exit Function
    End Function

    Private Function getVisiteurInfo_mail() As String
        Dim strVisiteur As String
        Dim strIP As String
        Dim strNM As String
        Dim item As Object
        On Error Resume Next ' cas ou context.session is nothing

        strIP = GetUsrIp()
        strNM = getHostName(strIP)

        strVisiteur = strVisiteur & "<TR><TD>DT_VISIT</TD><TD>" & System.DateTime.Now & "</TD></TR>"
        strVisiteur = strVisiteur & "<TR><TD>IP_VISIT</TD><TD>" & strIP & "</TD></TR>"
        strVisiteur = strVisiteur & "<TR><TD>NM_VISIT</TD><TD>" & strNM & "</TD></TR>"
        strVisiteur = strVisiteur & "<TR><TD>HTTP_REFERER</TD><TD>" & Context.Request.ServerVariables("HTTP_REFERER") & "</TD></TR>"
        strVisiteur = strVisiteur & "<TR><TD>SessionID</TD><TD>" & Context.Session.SessionID & "</TD></TR>"

        With Context.Request
            strVisiteur = strVisiteur & "<TR><TD>AcceptTypes</TD><TD>" & Left(Join(.AcceptTypes), 255) & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>UserLanguages</TD><TD>" & Join(.UserLanguages) & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>HasKeys</TD><TD>" & .ServerVariables.HasKeys.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>UserAgent</TD><TD>" & .UserAgent.ToString & "</TD></TR>"
        End With

        With Context.Request.Browser
            strVisiteur = strVisiteur & "<TR><TD>ActiveXControls</TD><TD>" & .ActiveXControls.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>AOL</TD><TD>" & .AOL.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>BackgroundSounds</TD><TD>" & .BackgroundSounds.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Beta</TD><TD>" & .Beta.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Browser</TD><TD>" & .Browser.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>CDF</TD><TD>" & .CDF.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>ClrVersion</TD><TD>" & .ClrVersion.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Cookies</TD><TD>" & .Cookies.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Crawler</TD><TD>" & .Crawler.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>EcmaScriptVersion</TD><TD>" & .EcmaScriptVersion.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Frames</TD><TD>" & .Frames.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>JavaApplets</TD><TD>" & .JavaApplets.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>JavaScript</TD><TD>" & .JavaScript.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>MajorVersion</TD><TD>" & .MajorVersion & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>MinorVersion</TD><TD>" & .MinorVersion & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>MSDomVersion</TD><TD>" & .MSDomVersion.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Platform</TD><TD>" & .Platform & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Tables</TD><TD>" & .Tables.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>TagWriter</TD><TD>" & .TagWriter.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Type</TD><TD>" & .Type.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>VBScript</TD><TD>" & .VBScript.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Version</TD><TD>" & .Version.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>W3CDomVersion</TD><TD>" & .W3CDomVersion.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Win16</TD><TD>" & .Win16.ToString & "</TD></TR>"
            strVisiteur = strVisiteur & "<TR><TD>Win32</TD><TD>" & .Win32.ToString & "</TD></TR>"
        End With

	' listing de toutes les variables serveur
        For Each item In Context.Request.ServerVariables
            strVisiteur = strVisiteur & "<TR><TD>" & item & "</TD><TD>" & _
            Context.Request.ServerVariables(item) & "</TD></TR>"
        Next

        On Error GoTo 0 ' obligatoirement désactiver on error resume next avant de quitter une fonction

        Return strVisiteur
    End Function

    Private Function getHostName(ByVal adIp As String) As String
	' nom machine du visiteur
        Dim sIP As String
        Dim posCHAR As Int16

        posCHAR = InStr(adIp, ":", CompareMethod.Text)
        adIp = Mid(adIp, posCHAR + 1)

        Dim myIP As IPHostEntry = Dns.Resolve(adIp)
        sIP = myIP.HostName
        'sIP += ("Adresse IP :" & myIP.AddressList(0).ToString & "<br>")
        Return sIP
    End Function

    Private Function GetUsrIp() As String
     ' retrouver l'adresse d'origine si le visiteur est derriere un proxy
        GetUsrIp = Context.Request.ServerVariables("REMOTE_HOST")
        If Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR") <> "" Then
            GetUsrIp = GetUsrIp & ":" & Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
        End If
    End Function

End Class



 Historique

09 septembre 2006 16:25:43 :
Modification des balises META pour simplification.

 Sources du même auteur

Source avec une capture Source .NET (Dotnet) DATES HEURES ET LANGUES

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID... par jesusonline
Source avec Zip Source .NET (Dotnet) CUSTOM DATEPIKER DÉRIVANT DE COMPOSITECONTROL par fredzool

Commentaires et avis

Commentaire de zaky_05 le 12/05/2004 11:25:12

Tres bonne fonction , complete et recoltant des infos utiles ;)
Cependant comment l'instancié dans un code?
ps: c'est pour ca que je ne met pas 10  :p , pour un débutant je pense que l'instanciation est aussi importante!

Commentaire de mkolivier le 30/05/2006 12:04:30

très bon code, il faudrait par contre le mettre en DotNet2 :-)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales