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
De code hier geeft je het IP-adres;
Dit werkt voor een externe clientaanvraag voor SQL 2008 en nieuwer.
Als je Shared Memory-verbindingen hebt toegestaan, dan zal het uitvoeren van hierboven op de server zelf je
. geven- "Gedeeld geheugen" als de waarde voor 'net_transport', en
- NULL voor 'local_net_address', en
- '
<local machine>
' wordt weergegeven in 'client_net_address'.
'client_net_address' is het adres van de computer waarvan het verzoek afkomstig is, terwijl 'local_net_address' de SQL-server is (dus NULL via Shared Memory-verbindingen), en het adres dat u aan iemand zou geven als ze de NetBios van de server niet kunnen gebruiken naam of FQDN om de een of andere reden.
Ik raad ten zeerste af om dit antwoord te gebruiken. Het inschakelen van de shell-out is een heel slecht idee op een productie-SQL Server.