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