<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog do Xorna &#187; geolocation</title>
	<atom:link href="http://www.blogdoxorna.com.br/categorias/geolocation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogdoxorna.com.br</link>
	<description>Informação sem discrição</description>
	<lastBuildDate>Wed, 05 May 2010 03:44:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Classe para buscar dados de GeoLocalização</title>
		<link>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/</link>
		<comments>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/#comments</comments>
		<pubDate>Thu, 28 May 2009 01:15:56 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[free api]]></category>
		<category><![CDATA[geo localização]]></category>
		<category><![CDATA[simples]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=135</guid>
		<description><![CDATA[Buenas pessoal, depois de um tempo meio sem tempo pra postar, mudança nas prioridades e tudo mais, o Doctrine acabou ficando para um pouco depois, mas para cortar o silêncio que aqui se instaurou, vou aproveitar e postar uma classe na qual montei agora, muito simples, usa a API de um webservice gratuito de busca [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, depois de um tempo meio sem tempo pra postar, mudança nas prioridades e tudo mais, o Doctrine acabou ficando para um pouco depois, mas para cortar o silêncio que aqui se instaurou, vou aproveitar e postar uma classe na qual montei agora, muito simples, usa a API de um webservice gratuito de busca de dados de Geolocalização, bem simples mas pra mim ficou eficiente e rápido, espero que gostem.</p>
<pre>&lt;?php
/**
 * Classe para busca de dados de geolocalização
 * utiliza um webservice gratuito do iplocationtools.com
 * utilizando o formato json como padrão, por ser mais leve e ágil para tratar
 * @author André Gustavo Espeiorin &lt;andregustavodocaqui@gmail.com&gt;
 * @version 1.0
 * @package X
 *
 */
class X_Location
{
	/**
	 * Formato Padrão
	 * @var &lt;string&gt;
	 * @access private
	 */
	private $_format = 'json';

	/**
	 * Endereço inicial para a pesquisa
	 * @var &lt;string&gt;
	 * @access private
	 */
	private $_queryUrl = 'http://iplocationtools.com/ip_query.php?ip=';

	/**
	 * Objecto de consulta do CURLs
	 * @var &lt;object&gt;
         * @access private
	 */
	private $_ch;

	/**
	 * Dados tratados
	 * @var &lt;array&gt;
	 * @access private
	 */
	private $_data;

	/**
	 * Construtor da Classe, recebe o parrametro &lt;string&gt; format
	 * Caso o paramêtro não seja passado, usa o padrão do sistema
	 * @return &lt;void&gt;
	 */
	public function __construct()
	{
		$this-&gt;_ch = curl_init();
	}

	/**
	 * Método que faz a consulta e tratamento dos dados, recebe o ip
	 * a ser consultado como parâmetro
	 * @param $ip
	 * @return &lt;boolean&gt;
	 */
	public function getData($ip)
	{
		if( isset($ip) &amp;&amp; !empty($ip) ){
			curl_setopt($this-&gt;_ch, CURLOPT_URL, $this-&gt;_queryUrl . $ip . '&amp;output=' . $this-&gt;_format);
			curl_setopt($this-&gt;_ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($this-&gt;_ch, CURLOPT_TIMEOUT, 15);

			$request = curl_exec($this-&gt;_ch);
			if( isset($request) &amp;&amp; !empty($request) ){
				$this-&gt;_data = json_decode($request, true);
				return true;
			} else{
				return false;
			}
		} else{
			return false;
		}
	}

	/**
	 * Método utilizado para pegar os dados de _data, caso o keyName seja ignorado, retorna o array inteiro
	 * Aqui eu listo as chaves que podem ser buscadas:
	 * -Ip
	 * -Status
	 * -CountryCode
	 * -CountryName
	 * -RegionCode
	 * -RegionName
	 * -City
	 * -ZipPostalCode
	 * -Latitude
	 * -Longitude
	 * @param $paramName
	 * @return &lt;array&gt; | &lt;string&gt;
	 */
	public function get($keyName='')
	{
		if( isset($keyName) &amp;&amp; !empty($keyName) ){
			return $this-&gt;_data[$keyName];
		}else{
			return $this-&gt;_data;
		}
	}

}</pre>
<p>Show, se a classe parece simples, imagine seu uso, abaixo pequeno exemplo:</p>
<pre>$gl = new X_Location();
$gl-&gt;getData('seuIp');
echo $gl-&gt;get('City');
// ou
var_dump($gl-&gt;get());</pre>
<p>Bom, espero que seja útil a todos, agradeço sua visita!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;t=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%20pessoal%2C%20depois%20de%20um%20tempo%20meio%20sem%20tempo%20pra%20postar%2C%20mudan%C3%A7a%20nas%20prioridades%20e%20tudo%20mais%2C%20o%20Doctrine%20acabou%20ficando%20para%20um%20pouco%20depois%2C%20mas%20para%20cortar%20o%20sil%C3%AAncio%20que%20aqui%20se%20instaurou%2C%20vou%20aproveitar%20e%20postar%20uma%20classe%20na%20qual%20montei%20a" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;story_title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;name=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;submitHeadline=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;submitSummary=Buenas%20pessoal%2C%20depois%20de%20um%20tempo%20meio%20sem%20tempo%20pra%20postar%2C%20mudan%C3%A7a%20nas%20prioridades%20e%20tudo%20mais%2C%20o%20Doctrine%20acabou%20ficando%20para%20um%20pouco%20depois%2C%20mas%20para%20cortar%20o%20sil%C3%AAncio%20que%20aqui%20se%20instaurou%2C%20vou%20aproveitar%20e%20postar%20uma%20classe%20na%20qual%20montei%20a&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
