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
Zde uvedený kód vám poskytne IP adresu;
To bude fungovat pro požadavek vzdáleného klienta na SQL 2008 a novější.
Pokud máte povolená připojení ke sdílené paměti, spuštěním výše na samotném serveru získáte
- "Shared Memory" jako hodnota pro 'net_transport' a
- NULL pro 'local_net_address' a
- '
<local machine>
' se zobrazí v 'client_net_address'.
'client_net_address' je adresa počítače, ze kterého požadavek pochází, zatímco 'local_net_address' by byl SQL server (tedy NULL přes připojení sdílené paměti) a adresa, kterou byste dali někomu, pokud nemůže používat NetBios serveru. jméno nebo FQDN z nějakého důvodu.
Důrazně nedoporučuji tuto odpověď používat. Povolení shellu je na produkčním serveru SQL velmi špatný nápad.