SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
Il codice qui ti darà l'indirizzo IP;
Funzionerà per una richiesta client remota a SQL 2008 e versioni successive.
Se disponi di connessioni di memoria condivisa consentite, l'esecuzione in alto sul server stesso ti darà
- "Memoria condivisa" come valore per 'net_transport' e
- NULL per 'local_net_address' e
- '
<local machine>
' verrà mostrato in 'indirizzo_rete_client'.
'client_net_address' è l'indirizzo del computer da cui ha avuto origine la richiesta, mentre 'local_net_address' sarebbe il server SQL (quindi NULL su connessioni di memoria condivisa) e l'indirizzo che daresti a qualcuno se non può utilizzare NetBios del server nome o FQDN per qualche motivo.
Sconsiglio vivamente di usare questa risposta. Abilitare la shell out è una pessima idea su un server SQL di produzione.