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
Der Code hier gibt Ihnen die IP-Adresse;
Dies funktioniert für eine Remote-Client-Anforderung an SQL 2008 und neuer.
Wenn Sie Shared-Memory-Verbindungen zugelassen haben, erhalten Sie beim Ausführen oben auf dem Server selbst
- "Shared Memory" als Wert für 'net_transport' und
- NULL für 'local_net_address' und
- '
<local machine>
' wird in 'client_net_address' angezeigt.
'client_net_address' ist die Adresse des Computers, von dem die Anfrage stammt, während 'local_net_address' der SQL-Server (also NULL über Shared Memory-Verbindungen) und die Adresse wäre, die Sie jemandem geben würden, wenn er das NetBios des Servers nicht verwenden kann Name oder FQDN aus irgendeinem Grund.
Ich rate dringend davon ab, diese Antwort zu verwenden. Das Aktivieren des Shell-Out ist auf einem Produktions-SQL-Server eine sehr schlechte Idee.