Skip to main content

IP to ISP/Country/City (GeoIP) using PHP

I've noted that many people are searching here about how to find out City/Country/ISP details from IP; often referred as GeoIP. Here, I've compiled my replies that once I posted to comp.lang.php


  1. Get the IP

  2. Refer http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml and see which whois server should be used for the whois lookup

  3. Now, do the whois lookup. e.g., whois -h whois.apnic.net 61.x.x.x

  4. Parse the results. AFAIK, it will have the ISP, City and Country info



For whois lookup, may use rwhois protocol through below PHP code:



<?php
function whois($host, $command)
{
$fp = fsockopen ($host, 43, $errno, $errstr, 100);
if (!$fp) {
$result = $errstr . $errno . "\n";
} else {
fputs ($fp, $command . "\r\n\r\n");
$result = '';
while (!feof($fp)) {
$result .= fgets ($fp, 128);
}
fclose ($fp);
}
return $result;
}

//debug...
echo whois('whois.internic.net', 'php.net');
?>



Related links


Comments

Popular posts from this blog

Solved: "Ports" Tab Not Visible in VS Code (WSL2)

None of the solutions I found on Reddit or GitHub worked, and most of the related GitHub issues were locked. So I'm documenting this here for future reference. Problem When using WSL2 in Visual Studio Code, the Ports tab—needed to access your application in Windows browsers like Chrome or Edge—doesn't appear. Even the Ports-related options are missing from the Command Palette. Solution After a lot of trial and error, here's what worked: Run npx serve in the VS Code terminal. It will output a URL such as http://localhost:3000/ . Click the link (or use the Follow Link option). This will open the app in your default browser. You may notice that it opens on a different port (for example, http://localhost:64198 ). At this point, the Ports tab becomes available in VS Code. After this initial trigger, the Ports tab seems to remain available in future VS Code...

Kids, cartoon, cricket, Rajini, Facebook, Mac

When I was studying in schools, I've noticed that Rajinikanth fans were insane and irrational. Of late, I'm noticing such attitude with cricket fans who take sportive things so serious and take serious things so sportive--moronic. Similarly I'm also noticing Facebook "herdy kids" and Mac fanatics (though I agree that iPhone is better, but can't agree that Mac is better for it's "usability").

English fever and low self-esteem

Chinese may be learning English but they are not switching their medium to English—all higher education takes place in Chinese. ... The obsession with English-medium education, particularly for technical and higher studies, is keeping millions of Indian children behind. The top business and professional schools in India remain English-based—their entrance exams are not only in English but specifically test English-language skills. A child in China, or for that matter, Japan or South Korea, does not have to deal with debilitating switch in medium to go to engineering, medical or business school. ... it is worth remembering that only four of the richest 20 economies in the world, by highest per-capita income, are English-based . Universal education, not English-medium, is what gives China the advantage over India. ... It is also a fallacy that our software success is built on knowledge of English. Israel’s population is half of Delhi’s, yet its software exports rival our own. It is...