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
Код здесь даст вам IP-адрес;
Это будет работать для запроса удаленного клиента к SQL 2008 и новее.
Если у вас разрешены соединения с Shared Memory, то запуск выше на самом сервере даст вам
- «Общая память» в качестве значения для «net_transport» и
- NULL для 'local_net_address' и
-
<local machine>
будет отображаться в 'client_net_address'.
«client_net_address» - это адрес компьютера, с которого был получен запрос, тогда как «local_net_address» будет сервером SQL (таким образом, NULL для соединений с общей памятью) и адресом, который вы дадите кому-либо, если он не сможет использовать по какой-либо причине имя NetBios или полное доменное имя сервера.
Я настоятельно рекомендую не использовать этот ответ . Включение оболочки - очень плохая идея для производственного SQL Server.