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
El código aquí le dará la dirección IP;
Esto funcionará para una solicitud de cliente remoto a SQL 2008 y posteriores.
Si tiene conexiones de memoria compartida permitidas, ejecutar arriba en el propio servidor le dará
- "Memoria compartida" como el valor de 'net_transport', y
- NULL para 'local_net_address', y
- '
<local machine>
' se mostrará en 'client_net_address'.
'client_net_address' es la dirección de la computadora desde la que se originó la solicitud, mientras que 'local_net_address' sería el servidor SQL (por lo tanto, NULL sobre las conexiones de memoria compartida), y la dirección que le daría a alguien si no puede usar el NetBios del servidor nombre o FQDN por alguna razón.
Recomiendo encarecidamente no usar esta respuesta. Habilitar el shell out es una muy mala idea en un SQL Server de producción.