Manual:Ipblocks table/zh

ipblocks表存储被阻止编辑的IP地址和用户的详细信息. 名称“ipblocks”是一个传统名称，因为现在用户帐户封禁也存储在此表中. 有关之前的封禁，请参阅.

ipb_id
主要密钥，为隐私而引入.

ipb_address
被阻止的四分点形式的IP地址或用户名.

ipb_user
被封禁的用户ID或0表示IP.

ipb_by
实施封禁的管理员的用户ID.

ipb_by_text
实施封禁的管理员的用户名文本.

已弃用，被ipb_by_actor替换.

ipb_by_actor
这是表中的外键.

ipb_reason
管理员提供的封禁的原因.

ipb_reason_id和comment表应改为！

ipb_reason_id
这是表中的外键.

ipb_timestamp
标准年月日时分秒格式的创建(或刷新)日期.

ipb_auto
指示该IP地址被阻止，因为被阻止的用户通过它访问页面. 如果这是1，ipb_address将会隐藏.

ipb_anon_only
如果设置为1，则阻止仅适用于已注销的用户.

ipb_create_account
如果设置为1，则阻止帐户创建与IP地址匹配.

ipb_enable_autoblock
如果设置为1，则允许从封禁创建自动封禁.

ipb_expiry
由管理员在阻止时设置的过期时间. 标准时间戳或字符串‘infinity（仅允许管理员手动解封）’.

ipb_range_start
IP段封中的第一个IP.

ipb_range_end
IP段封中的最后一个IP.

ipb_deleted
允许标记条目，对用户和sysop隐藏该条目.

ipb_block_email
如果设置为1，则阻止用户访问Special:Emailuser.

ipb_allow_usertalk
指示是否阻止被阻止的用户编辑其对话页面. 值为1表示允许用户编辑其用户对话页面.

ipb_parent_block_id
导致此封禁存在的封禁的ID. 自动块将其设置为原始封禁，以便被删除的原始块也会删除自动封禁.

ipb_sitewide
指示封禁是站点范围还是部分封禁. 值为0表示封禁是部分的. 部分封禁可以阻止用户访问特定页面、命名空间或操作. 如果部分封禁阻止用户访问任何页面或名称空间，则这些页面或名称空间将存储在表中.



架构摘要
+--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * 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       |                |

索引
 +--++-+--+-+---+-+--++--++-+---+ +--++-+--+-+---+-+--++--++-+---+ +--++-+--+-+---+-+--++--++-+---+
 * 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      |         |               |

