How to do a geoip lookup in php?

后端 未结 2 1920
青春惊慌失措
青春惊慌失措 2021-01-14 12:16

All tutorials I have seen have pointed towards functions like geoip_record_by_name. I always get this error: Fatal error: Call to undefined function geoip

相关标签:
2条回答
  • 2021-01-14 12:54

    You can try hostip.info, Maxmind or ip2location to name a few. These are easy to use with PHP and can be used on shared hosting. Some of them have offline options as well.

    0 讨论(0)
  • 2021-01-14 13:11

    If you have MySQL server, there are IP databases that you can use and install for free, then do a $_SERVER['REMOTE_ADDR'] and run it against the database data.

    i.e. (based on some arbitrary db)

    <?php
    
        $result = mysql_query("SELECT *
                              FROM ips
                              WHERE ip = {$_SERVER['REMOTE_ADDR']}
                              LIMIT 1") or die(mysql_error());
    
        $row = mysql_fetch_assoc($result);
    
        $city = $row['city'];
        $state = $row['state'];
        $country = $row['country'];
    
    ?>
    

    Some databases(Or just google it): http://www.ipinfodb.com/ip_database.php

    EDIT

    You can also do JSON/XML requests from other APIs and parse the data:

    i.e. (Using ipinfodb.com again)

    $doc->loadXML(file_get_contents("http://api.ipinfodb.com/v2/ip_query.php?key=your_key&ip=" . $_SERVER['REMOTE_ADDR'] . "&timezone=false")); 
    
    $country = $doc->getElementsByTagName('CountryName')->item(0)->nodeValue;
    
    0 讨论(0)
提交回复
热议问题