การหาประเทศจาก IP

มีคำถามมาจากบอร์ด ว่าอยากเลือกหน้าเพจตามประเทศของผู้ใช้โดยอัตโนมัติ หรือไม่ก็ ทำการเลือกภาษาโดยอัตโนมัติ จะทำอย่างไร

จริงๆแล้วก็ไม่ยากหรอกครับ เพราะว่าเราสามารถหาประเทศที่เรียกมาโดยดูจาก IP Address (มีบริการถมถืดบนเว็บ) แต่ในฐานะคนเขียนโปรแกรมการไปคอยกรอกเพื่อคอยตรวจคงไม่สะดวกนักก็เลยต้องไปค้นหา ปัญหามันก็อยู่ที่ฐานข้อมูลที่จะใช้ตรวจสอบครับ ก็ไปได้ที่ http://ip-to-country.webhosting.info แต่เป็น csv ผมเลยเอามาแปลงเป็น mysql สามารถดาวน์โหลดได้จากด้านล่างครับ

rar (289)

โค้ดด้านล่างเป็นโค้ดตัวอย่างสำหรับทดสอบนะครับ
<?php
$ip = $_SERVER['REMOTE_ADDR']; // อ่าน ip จาก เพจที่เรียก
//$ip = '222.123.92.135';
$ip_number = sprintf("%u", ip2long($ip)); // แปลง ip เป็นตัวเลข

// ค่ากำหนดของฐานข้อมูล
$host = 'localhost';
$username = 'root';
$password = '1234';
$dbname = 'demo';

$dbconnection = mysql_connect( $host , $username , $password );
mysql_query( "SET NAMES 'utf8';" );
mysql_select_db($dbname);

$sql  = "SELECT `country_3`
     FROM iptocountry
     WHERE $ip_number >= `ip_from`
     AND $ip_number <= `ip_to`
     LIMIT 1";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);

echo "$ip = $result[country_3]";

mysql_close();
?>
ผู้เขียน goragod โพสต์เมื่อ 10 มิ.ย. 2552 เปิดดู 11,374 ป้ายกำกับ PHP
^