2015-10-14 55 views
-1

出於各種目的,我發現自己需要截斷IP地址,我需要通過在最後一個「。」之後更改最後一個數字,將我的程序中的IP地址從(xx.x.x.x)更改爲(xx.x.x.1)。在字符串中的值爲1.Ruby編程:如何截斷IP地址?

我的理論是,這可以通過從最後一個截尾字符串到最後的「。」,並在其末尾添加「1」來實現,或者以某種方式通過命令程序在最後的「。」後改變字符串值。等於1 - 我都不知道該怎麼做。

我已經看到了截斷和改變Ruby中的字符串的各種教程,但沒有一個似乎涵蓋了相當複雜的東西。

總之,我的問題:

- 如何更改後的最終的最後一個數字的值「」在我的IP地址中,值爲1(使用第2段中提到的任何一種方法)?

- 這將需要從字符串到int等變量類的變化?

預先感謝您。

+0

你有什麼試過的?另外,爲什麼你最後需要一個1?子網在末尾用零/ es表示。 –

+0

我會使用正則表達式,但找到一個點的最後一個索引也應該起作用,儘管不那麼優雅 –

回答

0

Ruby是面向對象的語言,而不是面向字符串或面向整數的語言。你應該在程序中使用對象,而不是字符串或整數。 (當然,除非你的對象字符串或整數,但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>