Программирование на Ruby: как обрезать IP-адрес?

В различных целях мне нужно урезать IP-адрес, мне нужно изменить IP-адрес в моей программе с (xx.xxx) на (xx.xx1), изменив последний номер после последнего "." в строке до значения 1.

Я предполагаю, что это может быть достигнуто либо путем усечения строки с самого конца до конечного ".", И добавления "1" в конец ее, либо каким-либо образом, приказав программе изменить строковое значение после последнего "" быть равным 1 - ни один из которых я не знаю, как это сделать.

Я видел различные учебные пособия по усечению и изменению строк в Ruby, однако ни один из них, по-видимому, не охватывает что-то столь же сложное.

Короче мой вопрос:

- Как мне изменить значение последнего номера после финального "." в моем IP-адресе до значения 1 (используя любой из вышеупомянутых методов в пункте 2)?

- Требуется ли изменение класса переменных со строки на int и т. Д.?

Заранее спасибо.

1 ответ

Ruby является объектно-ориентированным языком, а не строковым или целочисленным языком. Вы должны использовать объекты в вашей программе, а не строки или целые числа. (Если, конечно, ваши объекты не являются строками или целыми числами. Но IP-адрес - это не строка или целое число, это IP-адрес.)

Как только вы переключаетесь на использование IP-адресов, ваша проблема становится тривиальной:

require 'ipaddr'

ip = IPAddr.new('12.34.56.78')

(ip & IPAddr.new(255.255.255.0)).succ
# => #<IPAddr: IPv4:12.34.56.1/255.255.255.255>
Другие вопросы по тегам