Salut,
Bon, je vais tiré un peu la couette … 
J’avais laissé ipset en stand bye, c’est reparti.
Un os!
Le premier de la liste. UNITED STATES me retourne les erreurs suivantes.
:~/.ipset_block.list# while read ln; do ipset -A UNITED_STATES $ln; done < UNITED_STATES.list
ipset v2.5.0: IP/port/element is outside of the set or set is full
ipset v2.5.0: IP/port/element is outside of the set or set is full
ipset v2.5.0: IP/port/element is outside of the set or set is full
ipset v2.5.0: IP/port/element is outside of the set or set is full
...
J’ai laissé cette action se terminer, il en ressortis 32776 lignes créer. (32776 blocks d’ip enregistrer)
La traduction très relative qu’en fait google, “élément est en dehors de l’ensemble ou d’un ensemble est pleine” ma laissé supposer que le fichier .list était trop imposant sur ma bête de course. (en local)
Un copier/coller de la liste créer par countryipblocks me sort un fichier (nommé: UNITED_STATES.list) de 42295 blocks d’IP. Autrement dit 42295 lignes.
J’ai limité le fichier à 32000 lignes. J’ai relancé, et cette fois aucune erreur.
Ça c’était pour la bête local.
Une recherche avec find sur les fichiers ipset, mais bon … 
Je n’ai pas su mettre la main sur ce script, par contre j’ai trouvé ceci sur la toile.
svn.netfilter.org/netfilter/trunk/ipset/ipset.c
[quote]…
static void kernel_error(unsigned cmd, int err)
{
unsigned int i;
struct translate_error {
int err;
unsigned cmd;
const char message;
} table[] =
{ / Generic error codes /
{ EPERM, 0, “Missing capability” },
{ EBADF, 0, “Invalid socket option” },
{ EINVAL, 0, “Size mismatch for expected socket data” },
{ ENOMEM, 0, “Not enough memory” },
{ EFAULT, 0, “Failed to copy data” },
{ EPROTO, 0, “ipset kernel/userspace version mismatch” },
{ EBADMSG, 0, “Unknown command” },
/ Per command error codes /
/ Reserved ones for add/del/test to handle internally:
* EEXIST
*/
{ ENOENT, CMD_CREATE, “Unknown set type” },
{ ENOENT, 0, “Unknown set” },
{ EAGAIN, 0, “Sets are busy, try again later” },
{ ERANGE, CMD_CREATE, “No free slot remained to add a new set” },
{ ERANGE, 0, “IP/port/element is outside of the set or set is full” },
{ ENOEXEC, CMD_CREATE, “Invalid parameters to create a set” },
{ ENOEXEC, CMD_SWAP, “Sets with different types cannot be swapped” },
{ EEXIST, CMD_CREATE, “Set already exists” },
{ EEXIST, CMD_RENAME, “Set with new name already exists” },
{ EEXIST, 0, “Set specified as element does not exist” },
{ EBUSY, 0, “Set is in use, operation not permitted” },
};
for (i = 0; i < sizeof(table)/sizeof(struct translate_error); i++) {
if ((table[i].cmd == cmd || table[i].cmd == 0)
&& table[i].err == err)
exit_error(err == EPROTO ? VERSION_PROBLEM
: OTHER_PROBLEM,
table[i].message);
}
exit_error(OTHER_PROBLEM, “Error from kernel: %s”, strerror(err));
}
…
[/quote]
J’ai lancé la même procédure sur mon dédié, kif-kif avec un fichier UNITED_STATES.list de 42295 blocks d’IP.
# while read ln; do ipset -A UNITED_STATES $ln; done < UNITED_STATES.list
ipset v2.5.0: IP/port/element is outside of the set or set is full
Un Z’idée …