Here's how I did it when playing with this...

Table definition:-

CREATE TABLE ip_list (
  ip_from double default NULL,
  ip_to double default NULL,
  country_code char(2) default NULL,
  country_name varchar(100) default NULL,
  KEY ip_from (ip_from,ip_to,country_code,country_name)
) TYPE=MyISAM;

Basic code to query it (takes a parameter 'ip' as GET paramter):-
<?php
        /*
                IP Lookup script
                        * prints a country code and name for an ip in the $_GET array
        */

        //Vars & Constants
        define("HOST","myhost");
        define("USER","myuser");
        define("PASS","mypassword");
        define("DB","ips");
        define("IP",$_GET["ip"]);

        // Functions
        function dbconnect() {
                if (($conn=mysql_pconnect(HOST,USER,PASS))===false) {
                        die("Couldn't connect to server");
                }
                if (!mysql_select_db(DB,$conn)) {
                        die("Couldn't select database");
                }
                return $conn;
        }
        function dbclose($conn) {
                if (!mysql_close($conn)) {
                        die("Couldn't close database connection");
                }
                return true;
        }
        function dosql($SQL) {
                if (($result=mysql_query($SQL))===false) {
                        die("Couldn't do sql : $SQL");
                }
                return $result;
        }

        //Core
        $SQL = "SELECT COUNTRY_NAME AS cn, COUNTRY_CODE AS cc FROM ips.ip_list WHERE 
IP_NUM BETWEEN ip_from AND ip_to";

        $conn = dbconnect();

        $ip = "127.0.0.1";

        $QSQL = str_replace("IP_NUM",sprintf("%u",ip2long(IP)),$SQL);
        
        $result = dosql($QSQL);
        $data = mysql_fetch_array($result);

        echo "ip:".IP."<BR>";
        echo "cn:".$data["cn"]."<BR>";
        echo "cc:".$data["cc"];

        dbclose($conn);
?>

HTH !!

Ronan
e: [EMAIL PROTECTED]
t: 01903 739 997
w: www.thelittledot.com

The Little Dot is a partnership of
Ronan Chilvers and Giles Webberley

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to