{"id":16781,"date":"2026-05-19T19:03:03","date_gmt":"2026-05-19T22:03:03","guid":{"rendered":"https:\/\/made4it.com.br\/?p=16781"},"modified":"2026-05-20T09:07:24","modified_gmt":"2026-05-20T12:07:24","slug":"geofeed-why-your-ip-addresses-show-up-in-the-wrong-city-and-how-to-fix-it","status":"publish","type":"post","link":"https:\/\/made4it.com.br\/en\/geofeed-why-your-ip-addresses-show-up-in-the-wrong-city-and-how-to-fix-it\/","title":{"rendered":"Geofeed: Why Your IP Addresses Show Up in the Wrong City and How to Fix It"},"content":{"rendered":"\n<p>Anyone who works with an Internet service provider has probably seen this type of complaint:<\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><\/p>\n<\/blockquote>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8220;My client is in Paran\u00e1, but the website thinks he&#8217;s in S\u00e3o Paulo.&#8221;<br\/>&#8220;The streaming is saying I&#8217;m in another country.&#8221;<br\/>&#8220;The bank blocked access because it thought the IP location was strange.&#8221;<br\/>&#8220;Google is showing a weather forecast for another city.&#8221;<\/p>\n<\/blockquote>\n\n<p id=\"bkmrk-%C3%89-uma-situa%C3%A7%C3%A3o-meio-\">It&#8217;s a bit of a thankless situation, because most of the time the network is working. The client is browsing, BGP is OK, DNS is responding, traceroute is coming through, latency is acceptable. <\/p>\n\n<p id=\"bkmrk-mas%2C-para-o-usu%C3%A1rio-\">But for the end user, the perception is simple: something is wrong with their Internet.<\/p>\n\n<p id=\"bkmrk-e%2C-muitas-vezes%2C-est\">And often it is. Not in connectivity, but in the way that IP address is being geolocated by third parties. <\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-ip-n%C3%A3o-tem-cidade-gr\">IP has no city recorded inside it<\/h2>\n\n<p id=\"bkmrk-a-primeira-coisa-imp\">The first important thing to understand is that an IP is not born with a city inside it.<\/p>\n\n<p id=\"bkmrk-n%C3%A3o-existe%2C-no-proto\">There is no field in the IP protocol saying:<\/p>\n\n<pre class=\"wp-block-code\"><code>este endere\u00e7o fica em Apucarana<\/code><\/pre>\n\n<p>or:<\/p>\n\n<pre class=\"wp-block-code\"><code>este prefixo pertence a Londrina<\/code><\/pre>\n\n<p id=\"bkmrk-a-geolocaliza%C3%A7%C3%A3o-por\">IP geolocation is an inference. Content companies, banks, CDNs, anti-fraud platforms, search engines, streaming services and commercial bases try to find out where that IP is probably being used. <\/p>\n\n<p id=\"bkmrk-para-isso%2C-elas-cruz\">To do this, they cross-reference various pieces of information: Internet log data, traffic behavior, measurements, history, user information, commercial bases, DNS, BGP, among other things.<\/p>\n\n<p id=\"bkmrk-na-maioria-dos-casos\">In most cases it works well enough. But when it goes wrong, it&#8217;s a real nuisance. <\/p>\n\n<p id=\"bkmrk-um-provedor-pode-rec\">A provider can receive a new block, buy or transfer resources, change prefixes between cities, activate a new POP, reorganize CGNAT, divide IPv6 by region, exchange upstreams or simply start using a block that was previously associated with another location.<\/p>\n\n<p id=\"bkmrk-s%C3%B3-que-as-bases-exte\">It&#8217;s just that the external bases can take a while to learn this.<\/p>\n\n<p id=\"bkmrk-e-a%C3%AD-come%C3%A7am-os-cham\">And then the calls begin.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-onde-entra-o-geofeed\">Where geofeed comes in<\/h2>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-o-geofeed-%C3%A9-uma-form&amp;content-text=O%20geofeed%20%C3%A9%20uma%20forma%20padronizada%20do%20pr%C3%B3prio%20opera\"><\/a>  The geofeed is a standardized way for the network operator to say:<\/p>\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8220;These IP prefixes are being used in these locations.&#8221;<\/p>\n<\/blockquote>\n\n<p id=\"bkmrk-ele-n%C3%A3o-muda-o-rotea\">It doesn&#8217;t change routing. It doesn&#8217;t change BGP. It doesn&#8217;t announce anything to the Internet. It&#8217;s not an upstream session.   <\/p>\n\n<p id=\"bkmrk-%C3%89-s%C3%B3-um-arquivo-csv-\">It&#8217;s just a CSV file published over HTTPS, following a format defined in RFC 8805 [1].<\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-um-exemplo-simples%3A&amp;content-text=Um%20exemplo%20simples%3A\"><\/a>  A simple example:<\/p>\n\n<pre class=\"wp-block-preformatted\">192.0.2.0\/24,BR,BR-PR,Apucarana,<br\/>198.51.100.0\/24,BR,BR-PR,Londrina,<br\/>203.0.113.0\/24,BR,BR-SP,Sao Paulo,<br\/>2001:db8:100::\/48,BR,BR-RS,Porto Alegre,<\/pre>\n\n<p id=\"bkmrk-cada-linha-associa-u\">Each line associates a prefix with an approximate location.<\/p>\n\n<p id=\"bkmrk-o-formato-%C3%A9%3A\">The format is:<\/p>\n\n<pre class=\"wp-block-code\"><code>ip_prefix,alpha2code,region,city,postal_code<\/code><\/pre>\n\n<p>In practice:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana,<\/code><\/pre>\n\n<p>I mean:<\/p>\n\n<pre class=\"wp-block-code\"><code>o prefixo 192.0.2.0\/24 est\u00e1 no Brasil, no Paran\u00e1, em Apucarana<\/code><\/pre>\n\n<p>The comma at the end is important. It represents the last field, <code>postal_code<\/code>, which is empty. <\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-o-que-cada-campo-sig\">What each field means<\/h2>\n\n<p id=\"bkmrk-o-primeiro-campo-%C3%A9-o\">The first field is the IP prefix. It can be IPv4 or IPv6, in CIDR format. <\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-exemplos%3A&amp;content-text=Exemplos%3A\"><\/a>  Examples:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana,\n2001:db8::\/32,BR,BR-PR,Londrina,<\/code><\/pre>\n\n<p id=\"bkmrk-o-segundo-campo-%C3%A9-o-\">The second field is the country, using ISO 3166-1 alpha-2. For Brazil, we use <code>BR<\/code>. <\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-o-terceiro-campo-%C3%A9-a&amp;content-text=O%20terceiro%20campo%20%C3%A9%20a%20regi%C3%A3o%2C%20usando%20ISO%203166-2.%20No\"><\/a>  The third field is the region, using ISO 3166-2. In the case of Brazilian states: <\/p>\n\n<pre class=\"wp-block-verse\">BR-PR Paran\u00e1<br\/>BR-SP S\u00e3o Paulo<br\/>BR-SC Santa Catarina<br\/>BR-RS Rio Grande do Sul<\/pre>\n\n<p id=\"bkmrk-a-lista-oficial-pode\">The official list can be consulted on the ISO platform [4]. For quick reference, there is also the ISO 3166-2:BR page, which lists the codes of the Brazilian states [5]. <\/p>\n\n<p id=\"bkmrk-o-quarto-campo-%C3%A9-a-c\">The fourth field is the city.<\/p>\n\n<p id=\"bkmrk-o-quinto-campo-%C3%A9-o-c\">The fifth field is the postal code. It exists in the format, but I don&#8217;t normally recommend using it for providers. The RFC itself treats this field with caution, because it can give too much granularity [1].  <\/p>\n\n<p id=\"bkmrk-para-isp%2C-na-maioria\">For ISP, in most cases, country, state and city are enough.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-geolocaliza%C3%A7%C3%A3o-%C3%A9-apr\">Geolocation is approximation, not GPS<\/h2>\n\n<p id=\"bkmrk-esse-ponto-%C3%A9-mais-im\">This point is more important than it seems.<\/p>\n\n<p id=\"bkmrk-quando-falamos-de-ge\">When we talk about geofencing, it&#8217;s easy to fall into the temptation of trying to be too precise. But IP geolocation is not GPS. <\/p>\n\n<p id=\"bkmrk-na-nanog-96%2C-o-sid-m\">At NANOG 96, Sid Mathur presented a talk called <strong>High-quality IP Geofeeds using AI Coding Assistants and MCP<\/strong>. One of the presentation&#8217;s most useful messages is precisely this: IP geolocation is statistical and inexact. The ideal is to think in geographical regions, not an exact point on the map [6].  <\/p>\n\n<p id=\"bkmrk-ele-d%C3%A1-uma-provoca%C3%A7%C3%A3\">He makes a good point: more precision doesn&#8217;t always mean higher quality.<\/p>\n\n<p>For a fixed ISP, which knows that a particular prefix serves a specific city, it makes sense to inform the city:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana,<\/code><\/pre>\n\n<p>But if the same prefix serves several nearby cities, it might be better to stop in the state:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,,<\/code><\/pre>\n\n<p id=\"bkmrk-isso-evita-resolver-\">This avoids solving one customer&#8217;s problem and creating a problem for another.<\/p>\n\n<p id=\"bkmrk-na-mesma-apresenta%C3%A7%C3%A3\">In the same presentation, he also comments on very real cases: users blocked for regional content, streaming thinking the person is in another country, websites showing the wrong weather and ISPs receiving complaints for something that is often outside the connectivity layer [6].<\/p>\n\n<p id=\"bkmrk-quem-vive-opera%C3%A7%C3%A3o-s\">Anyone who lives in an operation knows that this happens.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-o-geofeed-resolve-tu\">Does geofeed solve everything?<\/h2>\n\n<p id=\"bkmrk-n%C3%A3o.\">No.<\/p>\n\n<p id=\"bkmrk-e-%C3%A9-importante-ser-h\">And it&#8217;s important to be honest here.<\/p>\n\n<p id=\"bkmrk-publicar-geofeed-n%C3%A3o\">Publishing geofeed does not oblige Google, Netflix, banks, MaxMind, IPinfo, Cloudflare or any other consumer to immediately accept that information.<\/p>\n\n<p id=\"bkmrk-a-rfc-8805-trata-o-g\">RFC 8805 treats the geofeed as a source published by the operator. Consumers can collect it, validate it, cross-reference it with other databases and decide whether or not to use it [1]. <\/p>\n\n<p id=\"bkmrk-mesmo-assim%2C-publica\">Even so, publishing correctly greatly improves your position.<\/p>\n\n<p id=\"bkmrk-antes%2C-voc%C3%AA-dependia\">Before, you had to manually call up several different databases, each with its own process. With geofeed, you create a public, standardized and automatically discoverable source. <\/p>\n\n<p id=\"bkmrk-n%C3%A3o-%C3%A9-garantia-de-co\">It&#8217;s not a guarantee of instant correction, but it&#8217;s a much better operating practice.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-como-os-outros-desco\">How do others find out about your geofeed?<\/h2>\n\n<p id=\"bkmrk-publicar-o-arquivo-e\">Publishing the file to a URL is only part of the story.<\/p>\n\n<p id=\"bkmrk-voc%C3%AA-precisa-indicar\">You need to indicate where this file is in the IP block records.<\/p>\n\n<p id=\"bkmrk-%C3%89-a%C3%AD-que-entra-a-rfc\">This is where RFC 9632 [2] comes in.<\/p>\n\n<p id=\"bkmrk-ela-define-como-asso\">It defines how to associate a geofeed file with IP resource registration objects, such as <code>inetnum<\/code> and <code>inet6num<\/code>.<\/p>\n\n<p id=\"bkmrk-existem-duas-formas-\">There are two main ways.<\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-a-forma-mais-nova-%C3%A9-&amp;content-text=A%20forma%20mais%20nova%20%C3%A9%20usar%20o%20atributo%20pr%C3%B3prio%3A\"><\/a>  The newest way is to use the own attribute:<\/p>\n\n<pre class=\"wp-block-code\"><code>geofeed: https:\/\/geo.exemplo.com.br\/geofeed-192.0.2.0-24.csv<\/code><\/pre>\n\n<p>The way that is compatible with environments that don&#8217;t yet support the specific attribute is to use <code>remarks<\/code>:<\/p>\n\n<pre class=\"wp-block-code\"><code>remarks: Geofeed https:\/\/geo.exemplo.com.br\/geofeed-192.0.2.0-24.csv<\/code><\/pre>\n\n<p>The important thing is that the consumer can look at the block record and discover that there is a geofeed file associated with it.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-e-o-rdap%3F\">What about RDAP?<\/h2>\n\n<p id=\"bkmrk-o-rdap-%C3%A9-o-caminho-m\">RDAP is the most modern way of querying registry data.<\/p>\n\n<p id=\"bkmrk-enquanto-o-whois-tra\">While traditional WHOIS returns text, RDAP returns JSON. This makes it much easier to automate. <\/p>\n\n<p id=\"bkmrk-a-rfc-9877-define-co\">RFC 9877 defines how an RDAP server can report geofeed links within the response of an IP object [3].<\/p>\n\n<p id=\"bkmrk-um-exemplo-seria-alg\">An example would be something like this:<\/p>\n\n<pre class=\"wp-block-code\"><code>{\n  \"rel\": \"geofeed\",\n  \"href\": \"https:\/\/geo.exemplo.com.br\/geofeed-192.0.2.0-24.csv\",\n  \"type\": \"application\/geofeed+csv\"\n}<\/code><\/pre>\n\n<p id=\"bkmrk-ou-seja%3A-o-consumido\">In other words: the consumer consults the RDAP of an IP, finds the link <code>geofeed<\/code>, downloads the CSV and processes the information.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-o-mais-espec%C3%ADfico-ve\">The most specific wins<\/h2>\n\n<p id=\"bkmrk-aqui-a-l%C3%B3gica-%C3%A9-bem-\">The logic here is very familiar to anyone who works with networks.<\/p>\n\n<p id=\"bkmrk-o-mais-espec%C3%ADfico-ve-1\">The most specific wins.<\/p>\n\n<p id=\"bkmrk-mas-vale-separar-dua\">But it&#8217;s worth separating two things: geolocation granularity is not necessarily BGP announcement granularity.<\/p>\n\n<p id=\"bkmrk-na-internet-real%2C-em\">On the real Internet, in IPv4, <code>\/24<\/code> is usually the smallest practical unit for global announcements. So, if you have a larger block, such as a <code>\/22<\/code>, and internally use each <code>\/24<\/code> in a different city, the geofeed can represent this division by <code>\/24<\/code>. <\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-exemplo-conceitual%3A&amp;content-text=Exemplo%20conceitual%3A\"><\/a>  Conceptual example:<\/p>\n\n<pre class=\"wp-block-code\"><code>bloco-a\/24,BR,BR-PR,Apucarana,\nbloco-b\/24,BR,BR-PR,Londrina,\nbloco-c\/24,BR,BR-SP,Sao Paulo,\nbloco-d\/24,BR,BR-RS,Porto Alegre,<\/code><\/pre>\n\n<p id=\"bkmrk-o-importante-%C3%A9-enten\">The important thing is to understand the rule: when there are overlapping entries, the consumer should consider the most specific entry as the best match.<\/p>\n\n<p id=\"bkmrk-a-rfc-8805-permite-p\">RFC 8805 allows nested prefixes and directs the consumer to use the most specific entry as the best match [1].<\/p>\n\n<p id=\"bkmrk-a-rfc-9632-segue-a-m\">RFC 9632 follows the same idea when dealing with discovery via Internet logs: the most specific object with a geofeed reference should be used [2].<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-qualidade-do-arquivo\">File quality matters<\/h2>\n\n<p id=\"bkmrk-um-geofeed-ruim-pode\">A bad geofeed may not help. In some cases, it can even get in the way. <\/p>\n\n<p id=\"bkmrk-exemplo-errado%3A\">Wrong example:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,PR,Apucarana,<\/code><\/pre>\n\n<p>The correct answer is:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana<\/code><\/pre>\n\n<p>Another wrong example:<\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana<\/code><\/pre>\n\n<p>The last empty field is missing. It&#8217;s best to keep it: <\/p>\n\n<pre class=\"wp-block-code\"><code>192.0.2.0\/24,BR,BR-PR,Apucarana,<\/code><\/pre>\n\n<p id=\"bkmrk-outro-erro-comum-%C3%A9-m\">Another common mistake is to mix independent blocks within the same file, especially when the system where you are going to publish requires one file per block.<\/p>\n\n<p id=\"bkmrk-por-exemplo%2C-se-o-ar\">For example, if the file is associated with the block <code>192.0.2.0\/24<\/code>, do not place another independent block inside it, such as <code>198.51.100.0\/24<\/code>.<\/p>\n\n<p id=\"bkmrk-mesmo-que%2C-nas-rfcs%2C\">Even though in the RFCs there are scenarios where a single file can be used with care, in operational practice it is better to start simple: one file per block, containing only that block or sub-blocks of it.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-no-brasil%2C-aten%C3%A7%C3%A3o-%C3%A0\">In Brazil, attention to Registro.br&#8217;s current policy<\/h2>\n\n<p id=\"bkmrk-o-registro.br-come%C3%A7o\">Registro.br has started to implement support for geofeed-related RFCs.<\/p>\n\n<p id=\"bkmrk-por-enquanto%2C-a-pol%C3%AD\">For the time being, the policy is stricter. In practice, the safest way is to keep one file per block, containing only the block itself or sub-blocks of it, in UTF-8, with the correct number of fields and published in such a way that the file is downloaded directly. <\/p>\n\n<p id=\"bkmrk-isso-%C3%A9-importante-po\">This is important because one thing is what the RFC allows in more general terms. Another thing is how a specific implementation validates and accepts the data at the time. <\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-ent%C3%A3o%2C-para-usar-no-&amp;content-text=Ent%C3%A3o%2C%20para%20usar%20no%20Registro.br%2C%20pense%20assim%3A\"><\/a>  So, to use Registro.br, think of it like this:<\/p>\n\n<pre class=\"wp-block-code\"><code>bloco 192.0.2.0\/24      -> arquivo geofeed-192.0.2.0-24.csv\nbloco 198.51.100.0\/24   -> arquivo geofeed-198.51.100.0-24.csv\nbloco 203.0.113.0\/24    -> arquivo geofeed-203.0.113.0-24.csv<\/code><\/pre>\n\n<p id=\"bkmrk-e-cada-arquivo-deve-\">And each file should only contain the corresponding block or sub-blocks of it.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-cad%C3%AAncia-de-revis%C3%A3o\">Review cadence<\/h2>\n\n<p id=\"bkmrk-geofeed-n%C3%A3o-deveria-\">Geofeed shouldn&#8217;t be a forgotten file on the server.<\/p>\n\n<p id=\"bkmrk-ele-precisa-acompanh\">He needs to monitor the operation.<\/p>\n\n<p id=\"bkmrk-mudou-a-distribui%C3%A7%C3%A3o\">Has the distribution of prefixes changed?<br\/>Activated new POP?<br\/>Did you get a new block?<br\/>Did you transfer funds?<br\/>Have you sorted CGNAT by city?<br\/>Reorganized IPv6?<br\/>Have you purchased another provider?<\/p>\n\n<p id=\"bkmrk-ent%C3%A3o-revise-o-geofe\">Then review the geofeed.<\/p>\n\n<p id=\"bkmrk-na-apresenta%C3%A7%C3%A3o-da-n\">In NANOG&#8217;s presentation, an interesting suggestion is to treat this with cadence. Small ISPs can review monthly. Large ISPs and mobile operators may need to review weekly. Clouds and CDNs may need to review daily [6].   <\/p>\n\n<p id=\"bkmrk-para-a-maior-parte-d\">For most regional providers, I would put this on the checklist for network changes.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-conclus%C3%A3o\">Conclusion<\/h2>\n\n<p id=\"bkmrk-geofeed-%C3%A9-simples%2C-m\">Geofeed is simple, but it solves a real problem.<\/p>\n\n<p id=\"bkmrk-ele-ajuda-o-provedor\">It helps the provider to communicate in a standardized way where their IP prefixes are being used. It doesn&#8217;t guarantee that all the bases in the world will correct it immediately, but it does create a public, organized and automatable reference. <\/p>\n\n<p id=\"bkmrk-em-resumo%3A\">In a nutshell:<\/p>\n\n<ul id=\"bkmrk-a-rfc-8805-define-o-\" class=\"wp-block-list\">\n<li>RFC 8805 defines the file format;<\/li>\n\n\n\n<li>RFC 9632 defines how to discover and use these files via Internet logs;<\/li>\n\n\n\n<li>RFC 9877 takes this information to RDAP;<\/li>\n\n\n\n<li>Registro.br has already started to support this process;<\/li>\n\n\n\n<li>for Brazil at the moment, it&#8217;s best to work with one file per block.<\/li>\n<\/ul>\n\n<p id=\"bkmrk-assim-como-rpki%2C-irr\">Just like RPKI, IRR, PeeringDB, reverse DNS and good IPAM documentation, geofeed becomes part of an ISP&#8217;s operational maturity.<\/p>\n\n<p><a href=\"https:\/\/limbo.made4it.com.br\/books\/rpki-irr-e-geolocalizacao-pelo-registrobr\/page\/artigo-1-geofeed-por-que-seus-ips-aparecem-na-cidade-errada-e-como-comecar-a-corrigir-isso\/edit?content-id=bkmrk-n%C3%A3o-%C3%A9-s%C3%B3-%E2%80%9Carrumar-ci&amp;content-text=N%C3%A3o%20%C3%A9%20s%C3%B3%20%E2%80%9Carrumar%20cidade%20no%20Google%E2%80%9D.%20%C3%89%20cuidar%20da%20i\"><\/a>  It&#8217;s not just about &#8220;finding a city on Google&#8221;. It&#8217;s taking care of the identity of your IP resources on the Internet. <\/p>\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-refer%C3%AAncias\">References<\/h2>\n\n<p id=\"bkmrk-%5B1%5D-rfc-8805-%E2%80%94-a-for\">[1] RFC 8805 &#8211; A Format for Self-Published IP Geolocation Feeds<br\/>https:\/\/www.rfc-editor.org\/rfc\/rfc8805<\/p>\n\n<p id=\"bkmrk-%5B2%5D-rfc-9632-%E2%80%94-findi\">[2] RFC 9632 &#8211; Finding and Using Geofeed Data<br\/>https:\/\/www.rfc-editor.org\/rfc\/rfc9632<\/p>\n\n<p id=\"bkmrk-%5B3%5D-rfc-9877-%E2%80%94-rdap-\">[3] RFC 9877 &#8211; RDAP Extension for Geofeed Data<br\/>https:\/\/www.rfc-editor.org\/rfc\/rfc9877<\/p>\n\n<p id=\"bkmrk-%5B4%5D-iso-online-brows\">[4] ISO Online Browsing Platform &#8211; ISO 3166 \/ Brazil<br\/>https:\/\/www.iso.org\/obp\/ui\/#iso:code:3166:BR<\/p>\n\n<p id=\"bkmrk-%5B5%5D-iso-3166-2%3Abr-%E2%80%94-\">[5] ISO 3166-2:BR &#8211; list of Brazilian state codes<br\/>https:\/\/en.wikipedia.org\/wiki\/ISO_3166-2:BR<\/p>\n\n<p id=\"bkmrk-%5B6%5D-nanog-96-%E2%80%94-high-\">[6] NANOG 96 &#8211; High-quality IP Geofeeds using AI Coding Assistants and MCP<br\/>https:\/\/nanog.org\/events\/nanog-96\/content\/5683\/<\/p>\n\n<p id=\"bkmrk-%5B7%5D-v%C3%ADdeo-da-apresen\">[7] Presentation video &#8211; High-quality IP Geofeeds<br\/>https:\/\/www.youtube.com\/watch?v=x_vbTj_D91I<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anyone who works with an Internet service provider has probably seen this type of complaint: &#8220;My client is in Paran\u00e1, but the website thinks he&#8217;s in S\u00e3o Paulo.&#8221;&#8220;The streaming is saying I&#8217;m in another country.&#8221;&#8220;The bank blocked access because it thought the IP location was strange.&#8221;&#8220;Google is showing a weather forecast for another city.&#8221; It&#8217;s [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":16787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"categories":[1],"tags":[856,854,853,299],"class_list":["post-16781","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nao-categorizado","tag-ip-en","tag-ipv4-en","tag-ipv6-en","tag-isp-en"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/posts\/16781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/comments?post=16781"}],"version-history":[{"count":2,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/posts\/16781\/revisions"}],"predecessor-version":[{"id":16792,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/posts\/16781\/revisions\/16792"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/media\/16787"}],"wp:attachment":[{"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/media?parent=16781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/categories?post=16781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/made4it.com.br\/en\/wp-json\/wp\/v2\/tags?post=16781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}