ip_maddress
Manage ip address interfaces in ruby
linux manual
Actions
| name | description | 
|---|---|
| list | List multicast addresses | 
| add | Add a multicast address | 
| delete | Delete a multicast address | 
List
List multicast addresses
Parameters
| Field | Type | Description | 
|---|---|---|
| family | 
              
                string | Specifies the protocol family to use. The protocol family identifier can be one of inet, inet6, bridge, mpls or link. | 
| dev | 
              
                string | Specify the device name | 
Result
Returns an array of IPAddressProperty structs.
IPMAddress Fields
| Field | Type | Description | 
|---|---|---|
| index | 
              
                integer
              
             | Position of address property | 
| name | 
              
                string
              
             | Name of the device | 
| maddr | 
              
                array
              
             | An array of IPMAddressEntry items | 
IPMAddressEntry Fields
| Field | Type | Description | 
|---|---|---|
| family | 
              
                string
              
             | The protocol family identifier | 
| link | 
              
                string
              
             | Link address | 
| address | 
              
                string
              
             | (IPv4 or IPv6) address attached to the network device. | 
| users | 
              
                integer
              
             | Number of members belonging to this group. | 
Example
host.ip('maddr', 'list').to_a
[
    [0] #<Struct:Kanrisuru::Core::IP::IPMAddress:0x000007d0
        index = 1,
        maddr = [
            [0] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000820
                address = "224.0.0.1",
                family = "inet",
                link = nil,
                users = nil
            >,
            [1] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000898
                address = "ff02::1",
                family = "inet6",
                link = nil,
                users = nil
            >,
            [2] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000910
                address = "ff01::1",
                family = "inet6",
                link = nil,
                users = nil
            >
        ],
        name = "lo"
    >,
    [1] #<Struct:Kanrisuru::Core::IP::IPMAddress:0x000009b0
        index = 2,
        maddr = [
            [0] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000a00
                address = nil,
                family = nil,
                link = "01:00:5e:00:00:01",
                users = nil
            >,
            [1] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000a50
                address = nil,
                family = nil,
                link = "33:33:00:00:00:01",
                users = nil
            >,
            [2] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000aa0
                address = nil,
                family = nil,
                link = "33:33:ff:76:73:94",
                users = nil
            >,
            [3] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000af0
                address = nil,
                family = nil,
                link = "01:80:c2:00:00:00",
                users = nil
            >,
            [4] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000b40
                address = nil,
                family = nil,
                link = "01:80:c2:00:00:03",
                users = nil
            >,
            [5] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000b90
                address = nil,
                family = nil,
                link = "01:80:c2:00:00:0e",
                users = nil
            >,
            [6] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000be0
                address = "224.0.0.1",
                family = "inet",
                link = nil,
                users = nil
            >,
            [7] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000c58
                address = "ff02::1:ff76:7394",
                family = "inet6",
                link = nil,
                users = nil
            >,
            [8] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000cd0
                address = "ff02::1",
                family = "inet6",
                link = nil,
                users = 2
            >,
            [9] #<Struct:Kanrisuru::Core::IP::IPMAddressEntry:0x00000d48
                address = "ff01::1",
                family = "inet6",
                link = nil,
                users = nil
            >
        ],
        name = "ens3"
    >
]
Add
Add a new multicast address to an interface.
This command needs escalated privileges to make changes to certain files and directory ownership.
Parameters
| Field | Type | Description | 
|---|---|---|
| address | 
              
                string | The link-layer multicast address | 
| dev | 
              
                string | the device to join/leave this multicast address. | 
Result
No explicit data struct returned, only option is success?, failure?, and status to see if the program exited properly.
Example
host.su('root')
result = host.ip('maddress', 'add', dev: 'ens3', address: '192.16.9.13')
result.success?
true
Delete
Delete a multicast address from an interface.
This command needs escalated privileges to make changes to certain files and directory ownership.
Parameters
| Field | Type | Description | 
|---|---|---|
| address | 
              
                string | The link-layer multicast address | 
| dev | 
              
                string | the device to join/leave this multicast address. | 
Result
No explicit data struct returned, only option is success?, failure?, and status to see if the program exited properly.
Example
host.su('root')
result = host.ip('address', 'delete', dev: 'ens3', address: '192.16.9.13')
result.success?
true