我有一個變量,其中包含一個4字節的網絡順序IPv4地址(這是使用包和整數表示形式創建的)。我有另一個變量,也是一個4字節的網絡順序子網。我試圖將它們添加在一起並添加一個以獲取子網中的第一個IP。在Perl中添加二進制字符串的最簡單方法是什麼?
爲了得到ASCII碼錶示,我可以做inet_ntoa($ip&$netmask)
來獲得基地址,但這是一個錯誤inet_ntoa((($ip&$netmask)+1)
;我得到一個消息,如:
Argument "\n\r&\0" isn't numeric in addition (+) at test.pm line 95.
所以發生了什麼,最好的我所知道的,是它的看着4個字節,而當看到4個字節不表示一個數字字符串,然後拒絕加1。
把它放在另一種方式:我想要它做的是加1到最低有效字節,我知道是第四個字節?也就是說,我想要字符串\n\r&\0
並以字符串\n\r&\1
結尾。這樣做最簡單的方法是什麼?
有沒有辦法做到這一點,而無需解壓縮和重新包裝變量?
我想你可能是正確的。只是試圖看看是否有更簡單的方法,但唉,可能沒有。 – 2008-10-21 14:44:48