# tablesorter

## IPv4 & IPv6 address parsers

### Flexible client-side table sorting

Back to documentation

NOTE!

- NOTE The default "ipAddress" parser (also named "ipv4Address") is included with the original tablesorter; it was moved to the `parser-network.js` file in v2.18.0.
- In v2.29.3, all included parsers were changed to return a text representation of the network address. The specific issue was that the parsed IPv6 numerical values were too large for javascript to properly recognize the number.
- A parser for IPv6 was added in v2.12 and named "ipv6Address":
  - Unlike some other custom parsers, this one will auto-detect & check for a valid IPv6 address since the same address can be represented in many different ways. Some examples are shown in the demo table below.
  - IPv6 addresses are stored in the cache in their canonical decimal form, for faster & easier numerical sorting.
  - Extensive unit tests are included with this parser.
- If the parser doesn't auto-detect which column has IPv6 addresses, use the headers sorter option to set it:

      $(function() {
      $('table').tablesorter({
        headers: {
          1: { sorter: 'MAC' },
          // 2: { sorter: 'ipAddress' }, this parser is auto-detected
          3: { sorter: 'ipv6Address' }
        }
      });
      });

- These parsers may also be used with the original tablesorter plugin.

# Demo

Name | MAC | IPv4 | IPv6
--- | --- | --- | ---
Fred | 12:06:D2:8E:56:BF | 1.2.3.4 | f0f0::1
Ginger | 546F.5903.3C9B | 1.1.1.1 | f0::1
Mike | 3c-cf-44-cd-6e-d6 | 2.222.33.44 | 1:2:3:4:5::7:8
George | ff-68-3d-e8-b4-0d | 255.255.255.255 | ::2:3:4
Harry | f566.6dfd.2df2 | 251.2.33.4 | f0f0:f::1
Frank | 12:69:13:D8:FA:61 | 251.002.31.4 | ::
Kristy | A031.5FED.43BC | 2.221.003.4 | 0:0:0:0:0:0:0:0
Lily | 82-2D-FF-FA-CD-6C | 251.02.32.4 | f0f0::f:1
Maria | 125c395f08f2 | 1.2.3.44 | 1:2:3:4:5:6:1.2.3.4

# Page Header

    <!-- tablesorter -->
    <link rel="stylesheet" href="../css/theme.blue.css">
    <script src="../js/jquery.tablesorter.js"></script>

    <!-- load mac, ipv4 and ipv6 parsers -->
    <script src="../js/parsers/parser-network.js"></script>
    <script>
    $(function() {

      $('table').tablesorter({
        theme: 'blue',
        widgets: ['zebra'],
        sortList: [[1, 0]],
        headers: {
          1: { sorter: 'MAC' },
          // 2: { sorter: 'ipAddress' }, this parser is auto-detected (alias for 'ipv4Address')
          3: { sorter: 'ipv6Address' } // this parser is also auto-detected
        }
      });

    });
    </script>