Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выделить подсеть IP-адреса  [new]
ram
Member [скрыт]

Откуда:
Сообщений: 296
Подскажите как можно вырезать подсеть из строкового значения IP-адреса?
т.е имеем 192.168.1.1 получаем 192.168.1
или имеем 1.2.3.4 получаем 1.2.3

______________________________________
Вот ведь! ...
31 май 09, 05:21    [7248338]     Ответить | Цитировать Сообщить модератору
 Re: Выделить подсеть IP-адреса  [new]
ram
Member [скрыт]

Откуда:
Сообщений: 296
Дошло ;)

SUBSTRING(ip, 1, LEN(ip) - CHARINDEX('.', LTRIM(REVERSE(ip))))
______________________________________
Вот ведь! ...
31 май 09, 05:49    [7248341]     Ответить | Цитировать Сообщить модератору
 Re: Выделить подсеть IP-адреса  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
DECLARE @ip VARCHAR(15);
SET @ip='192.168.1.1';
SELECT PARSENAME(@ip,4)+'.'+PARSENAME(@ip,3)+'.'+PARSENAME(@ip,2);
31 май 09, 15:00    [7248779]     Ответить | Цитировать Сообщить модератору
 Re: Выделить подсеть IP-адреса  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3205
Если вам нужно отбросить последнюю точку и все, что идет за ней, то обратите внимание на вариант iap.

Если же вам нужно получить маску подсети из IP-адреса, то в общем случае эта задача нерешаема, т.к. адрес и маска - это два независимых атрибута хоста, и может существовать несколько узлов с разными масками подсетей, но одним и тем же IP.
31 май 09, 16:10    [7248859]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить