เบื่องต้น ต้อง Filter IP ก่อนครับ โดย 2 ข้อหลักๆคือ
1. IP Private ซึ่งสามารถตั้งค่าได้ที่ Firewall หรือ Router โดย IP ในที่นี้จะเป็นตายตัวในฝั่ง Network หรือ Alpha
2. IP Public คือ IP ภายนอกซึ่งจะไม่ตายตัว และจะไม่เหมือน IP Private
ในการ Select DB ตามเงื่อนไข ใช้การ If...else หรือ switch...case ได้เลย โดยการดึง IP
แต่เนื่องด้วยคุณมีเงื่อนไข ที่เป็นในรูปแบบ 2:1 คุณจำเป็นต้องกำหนด Type ในฐานข้อมูลให้เป็น Internal (ภายใน), external (ภายนอก)
Example : Code (PHP)
<?php
$IP=$_SERVER['REMOTE_ADDR'];
if($IP == '192.168.0.xxx') // IP Private
{
$sql= select ข้อมูล Internal และ External;
}else{ // IP Public Other
$sql= select ข้อมูล External;
}
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
// echo แสดงข้อมูล
}
?>
ไม่สามารถตรวจสอบจาก hosting กับ domain name ได้ครับ
แต่หลักๆ การเปิดบริษัทแล้ว ควรซื้อ IP Private ไว้ 1 IP ครับ เพื่อแยกให้ชัดเจนว่านี่คือ IP ภายใน เพื่อประโยชน์หลายๆด้านเช่น
- Web Server
- Mail Server
- FTP Server
- NAT
- Alpha Connected
ปรึกษาอีกครับ
กรณีนี้ผม คิวรี่ข้อมูลเครื่อง pc ที่ยังไม่มีข้อมูลในระบบฐานข้อมูล คิวรี่ที่เป็น 2 มาได้ครับ แต่วง lan คนละ ip อยากทราบว่า ผมคิวรี่มาแบบนี้ จะกำหนด ip ไว้ที่ไหนครับ code คิวรี่ครับ
<?php
$statuspc = 0;
$sql = "SELECT statuspc, count(ip) as countstatus FROM monitorpc.tbl_detail_pc where statuspc = '2';";
$result2 = $mysqli->query($sql);
while ($row = $result2->fetch_array(MYSQLI_ASSOC)) {
$statuspc = $statuspc + $row['countstatus'];
} ?>
ที่ผมคิดแบบนี้ถูกไหมครับ ขอคำแนะนำด้วยครับ
<?php
$statuspc = 0;
$sql = "SELECT statuspc, count(ip) as countstatus FROM monitorpc.tbl_detail_pc where statuspc = '2';";
$result2 = $mysqli->query($sql);
while ($row = $result2->fetch_array(MYSQLI_ASSOC)) {