Manual:Ipblocks table

The ipblocks table stores details of IP addresses and users who are blocked from editing. The name " ipblocks " is a legacy name, as now user account blocks are also stored in this table. For previous blocks, see.

ipb_id
Primary key, introduced for privacy.

ipb_address
Blocked IP address in dotted-quad form or user name.

ipb_user
Blocked user ID or 0 for IP blocks.

ipb_by
User ID of the administrator who made the block.

ipb_by_text
Text username of the administrator who made the block.

Deprecated in favor of ipb_by_actor.

ipb_by_actor
This is a foreign key to in the  table.

ipb_reason
Reason for the block given by the administrator.

ipb_reason_id and the comment table should be used instead!

ipb_reason_id
This is a foreign key to in the  table.

ipb_timestamp
Creation (or refresh) date in standard YMDHMS form.

ipb_auto
Indicates that the IP address was blocked because a blocked user accessed a page through it. If this is 1, ipb_address will be hidden.

ipb_anon_only
If set to 1, the block only applies to logged out users.

ipb_create_account
If set to 1, prevents account creation from matching IP addresses.

ipb_enable_autoblock
If set to 1, enables autoblocks to be created from the block.

ipb_expiry
Expiry time set by the administrator at the time of the block. A standard timestamp or the string 'infinity'.

ipb_range_start
The first IP in an IP range block.

ipb_range_end
The last IP in an IP range block.

ipb_deleted
Allows the entry to be flagged, hiding it from users and sysops.

ipb_block_email
If set to 1, prevents the user from accessing Special:Emailuser.

ipb_allow_usertalk
Indicates whether the blocked user is blocked from editing their talk page. A value of 1 means that the user is allowed to edit their user talk page.

ipb_parent_block_id
ID of the block that caused this block to exist. Autoblocks set this to the original block so that the original block being deleted also deletes the autoblocks.

ipb_sitewide
Indicates whether the block is sitewide or partial. A value of 0 indicates that the block is partial. A partial block can block a user from specific pages, namespaces or actions. If a partial block blocks a user from any pages or namespaces, these are stored in the table.

Schema summary
+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field               | Type                | Null | Key | Default | Extra          |
 * ipb_id              | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0       |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | NULL    |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL | NULL    |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0       |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0       |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1       |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL    |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0       |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0       |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0       |                |
 * ipb_parent_block_id | int(10) unsigned    | YES  | MUL | NULL    |                |
 * ipb_sitewide        | tinyint(1)          | NO   |     | 1       |                |

+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field               | Type                | Null | Key | Default | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL    | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0       |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | NULL    |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL | NULL    |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0       |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0       |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1       |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL    |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0       |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0       |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0       |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL    |                |
 * ipb_sitewide        | tinyint(1)          | NO   |     | 1       |                |

+--+-+--+-+++ +--+-+--+-+++ +--+-+--+-+++
 * Field               | Type                | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0              |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | NULL           |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | NULL           |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL           |                |
 * ipb_sitewide        | tinyint(1)          | NO   |     | 1              |                |

+--+-+--+-+++ +--+-+--+-+++ +--+-+--+-+++
 * Field               | Type                | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0              |                |
 * ipb_by              | int(10) unsigned    | NO   |     | 0              |                |
 * ipb_by_text         | varbinary(255)      | NO   |     |                |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | NULL           |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL           |                |
 * ipb_sitewide        | tinyint(1)          | NO   |     | 1              |                |

+--+-+--+-+++ +--+-+--+-+++ +--+-+--+-+++
 * Field               | Type                | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0              |                |
 * ipb_by              | int(10) unsigned    | NO   |     | 0              |                |
 * ipb_by_text         | varbinary(255)      | NO   |     |                |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_reason          | varbinary(767)      | NO   |     |                |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL           |                |
 * ipb_sitewide        | tinyint(1)          | NO   |     | 1              |                |

+--+-+--+-+++ +--+-+--+-+++ +--+-+--+-+++
 * Field               | Type                | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0              |                |
 * ipb_by              | int(10) unsigned    | NO   |     | 0              |                |
 * ipb_by_text         | varbinary(255)      | NO   |     |                |                |
 * ipb_by_actor        | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_reason          | varbinary(767)      | NO   |     |                |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL           |                |

+--+-+--+-+++ +--+-+--+-+++ +--+-+--+-+++
 * Field               | Type                | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)             | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned    | NO   | MUL | 0              |                |
 * ipb_by              | int(10) unsigned    | NO   |     | 0              |                |
 * ipb_by_text         | varbinary(255)      | NO   |     |                |                |
 * ipb_reason          | varbinary(767)      | NO   |     |                |                |
 * ipb_reason_id       | bigint(20) unsigned | NO   |     | 0              |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)          | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)          | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)          | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)         | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)          | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)          | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)          | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)             | YES  | MUL | NULL           |                |

+--+--+--+-+++ +--+--+--+-+++ +--+--+--+-+++
 * Field               | Type             | Null | Key | Default        | Extra          |
 * ipb_id              | int(11)          | NO   | PRI | NULL           | auto_increment |
 * ipb_address         | tinyblob         | NO   | MUL | NULL           |                |
 * ipb_user            | int(10) unsigned | NO   | MUL | 0              |                |
 * ipb_by              | int(10) unsigned | NO   |     | 0              |                |
 * ipb_by_text         | varbinary(255)   | NO   |     |                |                |
 * ipb_reason          | varbinary(767)   | NO   |     | NULL           |                |
 * ipb_timestamp       | binary(14)       | NO   | MUL |                |                |
 * ipb_auto            | tinyint(1)       | NO   |     | 0              |                |
 * ipb_anon_only       | tinyint(1)       | NO   |     | 0              |                |
 * ipb_create_account  | tinyint(1)       | NO   |     | 1              |                |
 * ipb_enable_autoblock | tinyint(1)      | NO   |     | 1              |                |
 * ipb_expiry          | varbinary(14)    | NO   | MUL |                |                |
 * ipb_range_start     | tinyblob         | NO   | MUL | NULL           |                |
 * ipb_range_end       | tinyblob         | NO   |     | NULL           |                |
 * ipb_deleted         | tinyint(1)       | NO   |     | 0              |                |
 * ipb_block_email     | tinyint(1)       | NO   |     | 0              |                |
 * ipb_allow_usertalk  | tinyint(1)       | NO   |     | 0              |                |
 * ipb_parent_block_id | int(11)          | YES  | MUL | NULL           |                |

+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field               | Type                | Null | Key | Default | Extra          |
 * ipb_id              | int(8)              | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned     | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned     | NO   |     | 0       |                |
 * ipb_by_text         | varchar(255) binary | NO   |     | NULL    |                |
 * ipb_reason          | tinyblob            | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL | NULL    |                |
 * ipb_auto            | bool                | NO   |     | 0       |                |
 * ipb_anon_only       | bool                | NO   |     | 0       |                |
 * ipb_create_account  | bool                | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool               | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL    |                |
 * ipb_deleted         | bool                | NO   |     | 0       |                |
 * ipb_block_email     | bool                | NO   |     | 0       |                |
 * ipb_allow_usertalk  | bool                | NO   |     | 0       |                |
 * ipb_parent_block_id | int(10)             | YES  | MUL | NULL    |                |

+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field               | Type                | Null | Key | Default | Extra          |
 * ipb_id              | int(8)              | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned     | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned     | NO   |     | 0       |                |
 * ipb_by_text         | varchar(255) binary | NO   |     | NULL    |                |
 * ipb_reason          | tinyblob            | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL | NULL    |                |
 * ipb_auto            | bool                | NO   |     | 0       |                |
 * ipb_anon_only       | bool                | NO   |     | 0       |                |
 * ipb_create_account  | bool                | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool               | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL    |                |
 * ipb_deleted         | bool                | NO   |     | 0       |                |
 * ipb_block_email     | bool                | NO   |     | 0       |                |
 * ipb_allow_usertalk  | bool                | NO   |     | 0       |                |

+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field               | Type                | Null | Key | Default | Extra          |
 * ipb_id              | int(8)              | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned     | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned     | NO   |     | 0       |                |
 * ipb_by_text         | varchar(255) binary | NO   |     | NULL    |                |
 * ipb_reason          | tinyblob            | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)          | NO   | MUL | NULL    |                |
 * ipb_auto            | bool                | NO   |     | 0       |                |
 * ipb_anon_only       | bool                | NO   |     | 0       |                |
 * ipb_create_account  | bool                | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool               | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)       | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob            | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob            | NO   |     | NULL    |                |
 * ipb_deleted         | bool                | NO   |     | 0       |                |
 * ipb_block_email     | bool                | NO   |     | 0       |                |

+--++--+-+-++ +--++--+-+-++ +--++--+-+-++
 * Field               | Type               | Null | Key | Default | Extra          |
 * ipb_id              | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason          | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)         | NO   | MUL | NULL    |                |
 * ipb_auto            | bool               | NO   |     | 0       |                |
 * ipb_anon_only       | bool               | NO   |     | 0       |                |
 * ipb_create_account  | bool               | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool              | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)      | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob           | NO   |     | NULL    |                |
 * ipb_deleted         | bool               | NO   |     | 0       |                |
 * ipb_block_email     | bool               | NO   |     | 0       |                |

+--++--+-+-++ +--++--+-+-++ +--++--+-+-++
 * Field               | Type               | Null | Key | Default | Extra          |
 * ipb_id              | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason          | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)         | NO   | MUL | NULL    |                |
 * ipb_auto            | bool               | NO   |     | 0       |                |
 * ipb_anon_only       | bool               | NO   |     | 0       |                |
 * ipb_create_account  | bool               | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool              | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)      | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob           | NO   |     | NULL    |                |
 * ipb_deleted         | bool               | NO   |     | 0       |                |
 * ipb_block_email     | bool               | NO   |     | 0       |                |

+--++--+-+-++ +--++--+-+-++ +--++--+-+-++
 * Field               | Type               | Null | Key | Default | Extra          |
 * ipb_id              | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason          | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp       | binary(14)         | NO   | MUL | NULL    |                |
 * ipb_auto            | bool               | NO   |     | 0       |                |
 * ipb_anon_only       | bool               | NO   |     | 0       |                |
 * ipb_create_account  | bool               | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool              | NO   |     | 1       |                |
 * ipb_expiry          | varbinary(14)      | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob           | NO   |     | NULL    |                |
 * ipb_deleted         | bool               | NO   |     | 0       |                |

+--++--+-+-++ +--++--+-+-++ +--++--+-+-++
 * Field               | Type               | Null | Key | Default | Extra          |
 * ipb_id              | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address         | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_user            | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by              | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason          | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp       | char(14) binary    | NO   | MUL | NULL    |                |
 * ipb_auto            | bool               | NO   |     | 0       |                |
 * ipb_anon_only       | bool               | NO   |     | 0       |                |
 * ipb_create_account  | bool               | NO   |     | 1       |                |
 * ipb_enable_autoblock | bool              | NO   |     | 1       |                |
 * ipb_expiry          | char(14) binary    | NO   | MUL | NULL    |                |
 * ipb_range_start     | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_range_end       | tinyblob           | NO   |     | NULL    |                |

+++--+-+-++ +++--+-+-++ +++--+-+-++
 * Field             | Type               | Null | Key | Default | Extra          |
 * ipb_id            | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address       | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_user          | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by            | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason        | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp     | char(14) binary    | NO   | MUL | NULL    |                |
 * ipb_auto          | bool               | NO   |     | 0       |                |
 * ipb_anon_only     | bool               | NO   |     | 0       |                |
 * ipb_create_account | bool              | NO   |     | 1       |                |
 * ipb_expiry        | char(14) binary    | NO   | MUL | NULL    |                |
 * ipb_range_start   | tinyblob           | NO   | MUL | NULL    |                |
 * ipb_range_end     | tinyblob           | NO   |     | NULL    |                |

+++--+-+-++ +++--+-+-++ +++--+-+-++
 * Field             | Type               | Null | Key | Default | Extra          |
 * ipb_id            | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address       | varchar(40) binary | NO   | MUL | NULL    |                |
 * ipb_user          | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by            | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason        | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp     | char(14) binary    | NO   |     | NULL    |                |
 * ipb_auto          | tinyint(1)         | NO   |     | 0       |                |
 * ipb_expiry        | char(14) binary    | NO   |     | NULL    |                |
 * ipb_range_start   | varchar(32)        | NO   | MUL | NULL    |                |
 * ipb_range_end     | varchar(32)        | NO   |     | NULL    |                |

+++--+-+-++ +++--+-+-++ +++--+-+-++
 * Field             | Type               | Null | Key | Default | Extra          |
 * ipb_id            | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address       | varchar(40) binary | NO   | MUL | NULL    |                |
 * ipb_user          | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by            | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason        | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp     | char(14) binary    | NO   |     | NULL    |                |
 * ipb_auto          | tinyint(1)         | NO   |     | 0       |                |
 * ipb_expiry        | char(14) binary    | NO   |     | NULL    |                |

+++--+-+-++ +++--+-+-++ +++--+-+-++
 * Field             | Type               | Null | Key | Default | Extra          |
 * ipb_id            | int(8)             | NO   | PRI | NULL    | AUTO_INCREMENT |
 * ipb_address       | varchar(40) binary | NO   | MUL | NULL    |                |
 * ipb_user          | int(8) unsigned    | NO   | MUL | 0       |                |
 * ipb_by            | int(8) unsigned    | NO   |     | 0       |                |
 * ipb_reason        | tinyblob           | NO   |     | NULL    |                |
 * ipb_timestamp     | char(14) binary    | NO   |     | NULL    |                |
 * ipb_auto          | tinyint(1)         | NO   |     | 0       |                |

Indexes
 +--++-+--+-+---+-+--++--++-+---+ +--++-+--+-+---+-+--++--++-+---+ +--++-+--+-+---+-+--++--++-+---+
 * Table   | Non_unique | Key_name            | Seq_in_index | Column_name         | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * ipblocks |         0 | PRIMARY             |            1 | ipb_id              | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         0 | ipb_address_unique  |            1 | ipb_address         | A         |           0 |      255 | NULL   |      | BTREE      |         |               |
 * ipblocks |         0 | ipb_address_unique  |            2 | ipb_user            | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         0 | ipb_address_unique  |            3 | ipb_auto            | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_user            |            1 | ipb_user            | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_range           |            1 | ipb_range_start     | A         |           0 |        8 | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_range           |            2 | ipb_range_end       | A         |           0 |        8 | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_timestamp       |            1 | ipb_timestamp       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_expiry          |            1 | ipb_expiry          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * ipblocks |         1 | ipb_parent_block_id |            1 | ipb_parent_block_id | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |