<!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, les comparto este correo que envié a LACNOG por si les resulta útil.</p>

<p dir="auto">/Carlos</p>

<p dir="auto">Forwarded message:</p>

<blockquote>
<p dir="auto">From: Carlos M. Martinez <a href="mailto:carlosm3011@gmail.com">carlosm3011@gmail.com</a><br>
To: Latin America and Caribbean Region Network Operators Group <a href="mailto:lacnog@lacnog.net">lacnog@lacnog.net</a><br>
Subject: ¿Como listar las IPs asignadas a un cierto país?<br>
Date: Mon, 16 Mar 2020 12:42:04 -0300</p>

<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>
</blockquote>
</div>
</div>
</body>
</html>