207. PortRanges

Checking and manipulation with port ranges (iptables).

207.1. Summary of Module Globals

List of Global Functions

  • CreateNewPortRange - Function creates a port range from min and max params. Max must be bigger than min. If something is wrong, it returns an empty string.

  • DividePortsAndPortRanges - Function divides list of ports to the map of ports and port ranges. If with_aliases is 'true' it also returns ports wit their port aliases. Port ranges are not affected with it.

  • FlattenServices - Function tries to flatten services into the minimal list. If ports are already mentioned inside port ranges, they are dropped.

  • IsPortRange - Function returns where the string parameter is a port range. Port ranges are defined by the syntax "min_port_number:max_port_number". Port range means that these maximum and minimum ports define the range of currency in Firewall. Ports defining the range are included in it. This function doesn't check whether the port range is valid or not.

  • IsValidPortRange - Checks whether the port range is valid.

  • PortIsInPortranges - Function returns where the port name or port number is included in the list of port ranges. Port ranges must be defined as a string with format "min_port_number:max_port_number".

  • RemovePortFromPortRanges - Function removes port number from all port ranges. Port must be in its numeric form.

List of Global Variables

  • max_port_number - Maximal number of port number, they are in the interval 1-65535 included. The very same value should appear in SuSEFirewall::max_port_number.

207.2. Global Functions

207.2.1. CreateNewPortRange

Function creates a port range from min and max params. Max must be bigger than min. If something is wrong, it returns an empty string.

Function parameters

  • integer min_pr

  • integer max_pr

Return value

  • string - new port range

207.2.2. DividePortsAndPortRanges

Function divides list of ports to the map of ports and port ranges. If with_aliases is 'true' it also returns ports wit their port aliases. Port ranges are not affected with it.

Function parameters

  • list <string> unsorted_ports

  • boolean with_aliases

Return value

  • map <string, list <string> > - <map <string, list <string> > > of divided ports

Returns $[
    "ports" : [ list of ports ],
    "port_ranges" : [ list of port ranges ],
 ]

207.2.3. FlattenServices

Function tries to flatten services into the minimal list. If ports are already mentioned inside port ranges, they are dropped.

Function parameters

  • list <string> old_list

  • string protocol

Return value

  • list <string> - of flattened services and port ranges

207.2.4. IsPortRange

Function returns where the string parameter is a port range. Port ranges are defined by the syntax "min_port_number:max_port_number". Port range means that these maximum and minimum ports define the range of currency in Firewall. Ports defining the range are included in it. This function doesn't check whether the port range is valid or not.

Function parameters

  • string check_this

Return value

  • boolean - whether the checked string is a port range or not

Example 74. 

     IsPortRange("34:38")      -> true
     IsPortRange("0:38")       -> true
     IsPortRange("port-range") -> false
     IsPortRange("19-22")      -> false


207.2.5. IsValidPortRange

Checks whether the port range is valid.

Function parameters

  • string port_range

Return value

  • boolean - if it is valid

Example 75. 

     IsValidPortRange("54:135") -> true  // valid
     IsValidPortRange("135:54") -> false // reverse order
     IsValidPortRange("0:135")  -> false // cannot be from 0
     IsValidPortRange("135")    -> false // cannot be one number
     IsValidPortRange("54-135") -> false // wrong separator


207.2.6. PortIsInPortranges

Function returns where the port name or port number is included in the list of port ranges. Port ranges must be defined as a string with format "min_port_number:max_port_number".

Function parameters

  • string port

  • list <string> port_ranges

Return value

  • boolean

Example 76. 

     PortIsInPortranges ("130",  ["100:150","10:30"]) -> true
     PortIsInPortranges ("30",   ["100:150","10:20"]) -> false
     PortIsInPortranges ("pop3", ["100:150","10:30"]) -> true
     PortIsInPortranges ("http", ["100:150","10:20"]) -> false


207.2.7. RemovePortFromPortRanges

Function removes port number from all port ranges. Port must be in its numeric form.

Function parameters

  • integer port_number

  • list <string> port_ranges

Return value

  • list <string> - of filtered port_ranges

Example 77. 

     RemovePortFromPortRanges(25, ["19-88", "152-160"]) -> ["19-24", "26-88", "152-160"]


207.3. Global Variables

207.3.1. max_port_number

Maximal number of port number, they are in the interval 1-65535 included. The very same value should appear in SuSEFirewall::max_port_number.

207.4. Module Requirements

207.4.1. Module Imports

  • PortAliases

207.4.2. Module Includes