263 messaggi dal 08 aprile 2009
Per recuperare l'IP e il nome computer dei client collegati alla mi pagina web uso:

strClientIP = Request.ServerVariables("REMOTE_ADDR")
nComputer = System.Net.Dns.GetHostEntry(Request.ServerVariables("remote_addr")).HostName

Mi viene però un dubbio. Questo codice è valido anche quando ci si collega tramite rete GPRS con un iPhone o un iPad?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, sì, quel codice è valido anche per dispositivi mobile. La rete GPRS è un sistema come un altro per permettere ad un client di raggiungere un fornitore di connettività internet. Da lì in poi, il dispositivo viene proiettato sulla rete con un proprio indirizzo IP, che può essere condiviso o no da altri client.

E' per questo che quando scrivi:
nComputer = System.Net.Dns.GetHostEntry(Request.ServerVariables("remote_addr")).HostName
non ottieni il nome del computer, ma il nome del dominio legato a quell'IP. Solitamente è un dominio di proprietà del fornitore che non ti dà alcuna informazione sul nome del dispositivo client. Meno frequentemente, invece, è il dominio di un'azienda che ha acquistato un proprio IP statico.

La ServerVariable HTTP_USER_AGENT ti dà qualche informazione sul browser usato per visitare il sito ma non c'è molto di più che puoi conoscere sul client.

ciao
Modificato da BrightSoul il 03 aprile 2012 22.53 -

Enjoy learning and just keep making
263 messaggi dal 08 aprile 2009
Questo significa che quell'istruzione non fa quello che voglio (cosa di cui peraltro mi ero già accorto)
A questo punto tu cosa mi consigli per ricavare il Nome Computer del client? Pensi sia fattibile?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

galbori ha scritto:

A questo punto tu cosa mi consigli per ricavare il Nome Computer del client? Pensi sia fattibile?

Umh, no, secondo me è fattibile solo se il client si trova nella stessa rete locale del server. In questo caso la risoluzione inversa dell'indirizzo IP ti restituisce effettivamente il nome del computer perché la corrispondenza viene letta dalla tabella dei nomi del NetBIOS.

Negli altri casi, ovvero quando il server viene raggiunto via internet, non puoi conoscere il nome del PC client perché le risoluzioni sono governate dal sistema DNS, che non contiene nomi di macchine ma solo nomi a dominio.

Devi trovare un sistema differente per riconoscere i client tuttavia non so cosa consigliarti perché non conosco esattamente il problema che devi risolvere. Ad esempio, non ti è possibile lasciare che i client effettuino il login, così puoi riconoscerli dal loro username?
Vuoi forse che i client possano accedere solamente da un PC predeterminato?

ciao

Enjoy learning and just keep making
263 messaggi dal 08 aprile 2009
Il mio problema è che ho utentiche si loggano con le stesse credenziali, e io li volevo differenziare. Ora utilizzo l'IP, ma mi sarebbe piaciuto ricavare il nome del PC perchè:
1- E' più intuitivo
2- Mi "stuzzicava" l'idea di riuscire a ricavarlo :-))
11.886 messaggi dal 09 febbraio 2002
Contributi
Sto cercando di capire se sia possibile recuperare il nome della macchina usando i plugin del browser, come Flash o Silverlight, ma per motivi di sicurezza sembra di no...

Dovresti, secondo me, assegnare a ciascun utente un proprio username. Questo ti permetterà di identificarli in maniera univoca.

Poi, se ad alcuni di essi vuoi concedere un accesso speciale ad un'area del sito, allora puoi assegnargli un ruolo comune.
La discriminante per consentire o negare l'accesso a quest'area sarà la presenza o meno di questo ruolo.

La membership API di Asp.Net ti consente di gestire le politiche di accesso direttamente dal web.config. E' un sistema molto pratico e facilmente configurabile, qui trovi una guida di Andrea Zani.
http://www.aspitalia.com/articoli/asp.net2/membership_roles_api.aspx

Altro non mi viene in mente... anche se fosse possibile recuperare il nome del PC non c'è garanzia che questo nome sia unico per ogni utente. Stessa cosa per l'IP e per la stringa HTTP_USER_AGENT. Non sono elementi su cui fare troppo affidamento per distinguere un utente dall'altro.

ciao

Enjoy learning and just keep making
263 messaggi dal 08 aprile 2009
Utenti differenziati sarebbe la cosa migliore. Purtroppo non riesco a farlo. La ns filiale in Germania usa gli utenti che hanno in maniera assolutamente casuale e ingestibile. Il fatto che l'IP possa non essere univoco non so... gli ip normalmente sono dinamici e vengono assegnati dai DHCP. Ovviamente può essere che non siano sempre gli stessi, come che ci siano dei duplicati, ma la mia applicazione viene usata da un paio di uffici, unoo in germania e uno in Italia, per cui la possibilità di IP uguali penso sia scarsa. Il problema è che io vorrei crearmi dei file di log legati all'utilizzo del sito che siano suddivisi per Utente. Non avendo garanzie sull'utente allora mi volevo appoggiare al PC da cui si attiva il collegamento (Normalmente ogni utente lavora solo sul suo PC)
11.886 messaggi dal 09 febbraio 2002
Contributi
ok, quindi gli utenti sono impiegati di una filiale in Germania situati nello stesso ufficio. Se essi si collegano al tuo server raggiungendolo dal suo IP pubblico (cioè, "passando da internet"), allora è probabile che tutti quei client si colleghino con lo stesso IP.

galbori ha scritto:

gli ip normalmente sono dinamici e vengono assegnati dai DHCP

certo, finché resti nella rete locale. Io sono un utente della filiale della Germania e siedo nella mia postazione. Il server DHCP che si trova nella stanza affianco assegna al mio PC l'IP privato 192.168.0.10. Quando mi collego al tuo server devo uscire dalla rete locale; il router instrada il mio traffico su internet e mi presenta al tuo server con l'IP pubblico della connessione DSL aziendale. Non con il 192.168.0.10 che è un indirizzo privato, valido fintanto che mi trovo tra le mura della sede tedesca.
Il mio collega che siede nella scrivania affianco si presenterà anche lui con il mio stesso IP pubblico perché entrambi "usciamo su internet" con la stessa connessione DSL. Ha poca importanza che il DHCP gli abbia assegnato un indirizzo privato diverso, es. 192.168.0.11.

Comunque il fatto che gli utenti siano gli impiegati di una filiale gioca a tuo vantaggio. Falli collegare alla rete locale della tua azienda attraverso un collegamento VPN. Questo consentirà ai pc tedeschi di "apparire" sulla vostra rete locale italiana come se fossero fisicamente lì. A questo punto torniamo al caso già discusso e *probabilmente* riuscirai a conoscere il nome dei loro PC.

BrightSoul ha scritto:

secondo me è fattibile solo se il client si trova nella stessa rete locale del server


ciao
Modificato da BrightSoul il 05 aprile 2012 00.21 -

Enjoy learning and just keep making

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.