<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div><div class="markdown">
<p dir="auto">Hola!</p>
<p dir="auto">En vista entiendo de acciones que muchos están tomando para rápidamente exponer servicios en línea pero que por una u otra razón deben ser limitados a un cierto país, me ha llegado por varios lugares la pregunta <em>“De donde saco una lista de las IPs del país XX”</em>.</p>
<p dir="auto">Afortunadamente esto es bastante sencillo. LACNIC (y todos los 5 RIRs) publicamos diariamente una versión abreviada del estado del registro, una especie de “snapshot” de las asignaciones realizadas.</p>
<p dir="auto">Este snapshot es un archivo separado por pipes que pueden accederlo en esta URL:</p>
<p dir="auto"><a href="https://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest">https://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest</a></p>
<p dir="auto">Para obtener una lista de prefijos asignados a un país pueden:</p>
<p dir="auto">A. Hacer un “grep” por código de país y ver a groso modo los prefijos</p>
<p dir="auto">B. Si necesitan una lista en formato CIDR, deberían implementar un script de acuerdo al siguiente pseudocódigo:</p>
<pre><code>01. for linea in “delegated extended latest”:
02. … # asumo que linea es un array numerado desde cero con las columnas del archivo
03. … # country code es el codigo ISO 3166-2 (AR, UY, BR, etc.)
04. … if linea[1] == “country code” :
05. … if linea[2] == “ipv4”:
06. … prefijo = linea[3]
07. … largo_prefijo = log2(linea[4])
08. … print(prefijo.”/“.largo_prefijo)
09. … elseif linea[2] == “ipv6”
10. … prefijo = linea[3]
11. … largo_prefijo = linea[4]
12. … print(prefijo.”/“.largo_prefijo)
</code></pre>
<p dir="auto">Espero les resulte útil.</p>
<p dir="auto">S2</p>
<p dir="auto">Carlos</p>
</div>
</div>
</body>
</html>