Как узнать IP-адрес или имя сервера в SQL Server 2005
Быстрый ответ
Если вы хотите узнать IP-адрес сервера в SQL Server, вы можете использовать следующий запрос:
SELECT client_net_address 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID;
А для получения IP-адреса сервера в MySQL вам будет полезен такой код:
SELECT SUBSTRING_INDEX(HOST, ':', 1) AS ServerIPAddress 
FROM information_schema.processlist 
WHERE ID = CONNECTION_ID();
Оба сниппета кода предоставляют IP-адрес текущего сервера. Учтите, что вы должны использовать запрос, соответствующий СУБД, с которой вы работаете.

Получение детальной информации о соединениях сервера
В SQL Server есть возможность получить расширенную информацию о соединениях, используя следующий скрипт:
SELECT 
    net_transport,
    protocol_type,
    auth_scheme,
    local_net_address,  -- Здесь находится IP-адрес вашего сервера
    local_tcp_port,
    client_net_address
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID;
Данный скрипт позволяет анализировать текущее соединение и устанавливать IP-адрес сервера (local_net_address).
Управление доступом и обеспечение безопасности
Для работы с sys.dm_exec_connections требуются права VIEW SERVER STATE. Используйте следующую команду с осторожностью:
GRANT VIEW SERVER STATE TO [YourLogin];
Не забывайте об обеспечении безопасности: избегайте команд, таких как xp_cmdshell, которые могут увеличить уровень угрозы для системы.
Определение идентификатора сервера
Информация о имени сервера может быть так же важной, как и информация о его IP. Вы можете использовать @@SERVERNAME или функцию SERVERPROPERTY для получения такой информации:
SELECT @@SERVERNAME AS Server_Name; 
-- или
SELECT SERVERPROPERTY('MachineName') AS Server_Machine_Name;  
Данные функции предлагают различные способы идентификации сервера.
Создание хранимой процедуры для извлечения IP-адреса
Создание хранимой процедуры сделает задачу получения IP-адреса значительно проще:
CREATE PROCEDURE GetServerIPAddress
AS
BEGIN
    SELECT local_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID;
END;
Запросив EXEC GetServerIPAddress, вы сможете легко определить IP-адрес сервера.
Разбор сетевой информации
Изучив свойства net_transport, local_tcp_port и auth_scheme, вы можете более полно осознать специфику сетевого взаимодействия.
Обработка адреса с учетом деталей
При работе с именами хостов в SQL Server вам могут понадобиться функции CHARINDEX и LEFT:
SELECT LEFT(client_net_address, CHARINDEX(':', client_net_address) – 1) AS JustIPAddress 
FROM sys.dm_exec_connections;
Таким образом вы получите только IP-адрес, без лишних деталей.
Особенности работы с SQL Server 2005
При работе с SQL Server 2005 следует учесть, что некоторые функции могут быть недоступны или требуют альтернативных методов использования.
Визуализация
SQL-запрос выполняющий получение IP-адреса сервера можно представить как взаимодействие с базой данных:
📬: "Куда же мне должно быть доставлено это письмо?"
🗃️: "Загляните на почтовую метку."
И вот сам запрос:
SELECT SERVERPROPERTY('MachineName') AS Server_Home_Address;
В ответе у вас будет домашний адрес сервера.
У каждого сервера есть свой уникальный IP-адрес, который можно узнать простым SQL-запросом.
Полезные материалы
- SERVERPROPERTY (Transact-SQL) – Microsoft Learn — подробности о функции SERVERPROPERTY.
- Identify SQL Server TCP IP port being used — о том, как определить сетевые настройки и порты SQL Server.
- Transact-SQL – Microsoft Q&A — площадка для обсуждения вопросов, связанных с T-SQL.
- SQL Authority Blog Post on Server IP Address Retrieval Methods — смотрите варианты получения IP-адресов сервера в SQL Server.