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

"A to Z of C" in the book Cimple (ISBN 0070260982)

I was just searching "A to Z of C" in Google Books and found that the book Cimple written by Sasant K Rout has used our code. The irony is that the book was published by Tata McGraw-Hill , who rejected us in final stage stating that it wants us to get endorsement from any IIT professor, which we couldn't. (For the sake of record... IIT Bangalore was linking & supporting "A to Z of C" for long time once it's published over the net; see old IIT page from web.archives.org ) It's just another incident to prove that success isn't a measurable unit; even failed attempts can be appreciated in any other forms.

RTaKeyman Bookmarklet v2.0

RTaKeyman The above bookmarklet is for English to Tamil transcription. This should work like a Input Method Editor on web page forms. The first version I tried didn't work well and so this bookmarklet version. Version 2.0 2004-12-27 1.0 2004-12-12 Usage Make a bookmarklet with the above link. Point to a web page where you want to enter Tamil characters and click the bookmarklet. This will initialize the keyman for that page. Then start typing on the forms; RTaKeyman will transcribe the characters whenever it sees a space, carriage return and tab. To-do Turning on/off keyman (i.e., to enter both Tamil and English). Help and other user interfaces. Credits Sundar for informing the necessity and for being a beta tester

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...