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
Mã ở đây Sẽ cung cấp cho bạn Địa chỉ IP;
Điều này sẽ hoạt động đối với một yêu cầu máy khách từ xa đối với SQL 2008 và mới hơn.
Nếu bạn đã cho phép kết nối Bộ nhớ dùng chung, thì việc chạy ở trên trên chính máy chủ sẽ cung cấp cho bạn
- "Bộ nhớ dùng chung" làm giá trị cho 'net_transport' và
- NULL cho 'local_net_address' và
- '
<local machine>
'sẽ được hiển thị trong' client_net_address '.
'client_net_address' là địa chỉ của máy tính mà yêu cầu bắt nguồn từ đó, trong khi 'local_net_address' sẽ là máy chủ SQL (do đó NULL qua các kết nối Bộ nhớ dùng chung) và địa chỉ bạn sẽ cung cấp cho ai đó nếu họ không thể sử dụng NetBios của máy chủ tên hoặc FQDN vì một số lý do.
Tôi khuyên bạn không nên sử dụng câu trả lời này. Bật shell out là một ý tưởng rất tồi trên SQL Server sản xuất.