<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>John's blog</provider_name><provider_url>https://blog.jj5.net/blog</provider_url><author_name>Jay Jay</author_name><author_url>https://blog.jj5.net/blog/author/jj5/</author_url><title>GeoIP with MaxMind's GeoLite in PHP &#x2014; John's blog</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="Ac4aZlkulq"&gt;&lt;a href="https://blog.jj5.net/blog/2012/11/04/geoip-with-maxminds-geolite-in-php/"&gt;GeoIP with MaxMind&#x2019;s GeoLite in PHP&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://blog.jj5.net/blog/2012/11/04/geoip-with-maxminds-geolite-in-php/embed/#?secret=Ac4aZlkulq" width="600" height="338" title="&#x201C;GeoIP with MaxMind&#x2019;s GeoLite in PHP&#x201D; &#x2014; John's blog" data-secret="Ac4aZlkulq" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://d3tdk46fcdgbgu.cloudfront.net/blog/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><description>You can download the GeoLite Country database from GeoLite Free Downloadable Databases and you can grab the MaxMind GeoIP PHP API. Once you have the GeoIP.dat file and the geoip.inc PHP file you&#x2019;re good to go. E.g.: require_once __DIR__ . &hellip; Continue reading &rarr;</description></oembed>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 17/18 objects using Disk
Page Caching using Disk: Enhanced (Requested URI contains query) 
Content Delivery Network via Amazon Web Services: CloudFront: d3tdk46fcdgbgu.cloudfront.net
Database Caching 3/3 queries in 0.001 seconds using Disk

Served from: blog.jj5.net @ 2026-06-17 14:55:02 by W3 Total Cache
-->