2 messaggi dal 10 febbraio 2017
Salve a tutti,

ho realizzato un Webservice con asp.net.

Ho la necessità di conoscere l'IP del client che effettua la chiamata alle varie funzioni che ho realizzato.

Per farlo ho utilizzato la seguente funzione:

    Private Function getIP() As String
        Try
            Dim ip As String
            ip = Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
            If ip = String.Empty Then
                ip = Context.Request.ServerVariables("REMOTE_ADDR")
            End If
            Return ip

        Catch ex As Exception
            Return "KO: " & ex.Message
        End Try
    End Function



Il problema è che il server IIS sul quale è posto il webservice non è sulla rete pubblica ma dal nostro firewall viene effettuato un portforwaring verso di esso.

Questo comporta che l'IP che ottengo è quello del firewall e non quello effettivo del client chiamante.

E' possibile ottenere in qualche modo l'IP effettivo?




Grazie.
Modificato da uniplan il 27 febbraio 2018 12.24 -
10.665 messaggi dal 09 febbraio 2002
Contributi
Ciao,
prova a vedere se il firewall ti ha messo l'ip del client tra le intestazioni della richiesta HTTP. Ci dovrebbe appunto essere un'intestazione X-Forwarded-For però è anche possibile che il tuo firewall la chiami in maniera diversa o non la includa affatto. In quest'ultimo caso, chiedi all'amministratore di rete di vedere se c'è modo di fargliela abilitare.

Per capire che intestazioni stai ricevendo, prova a copiarle tutte in una stringa come vedi qui:
https://stackoverflow.com/questions/2628584/how-to-dump-asp-net-request-headers-to-string
E poi stampa la stringa a video in modo da renderti conto di cosa stai ricevendo.

Il codice che hai postato non è sbagliato ma bisogna per l'appunto vedere se l'ip del client è tra le intestazioni della richiesta.

ciao,
Moreno

Enjoy learning and just keep making
2 messaggi dal 10 febbraio 2017
Ciao,
ho provato ma non esce l'intestazione X-Forwarded-For ora chiedo all'amministratore del firewall.

Grazie.

Saluti.

Antonio

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.