Download Articles Stats About us Contact us
HomePHP

วิธีใช้ ip2long

ip : 192.168.101.100
เพื่อแปลงเป็น interger ด้วย ip2long
$ip2 = ip2long($ip);

ใน server 64 bit ทั่วไป จะได้ค่าเป็น 3232261476
แต่ใน server 32 bit บางตัว จะได้ค่าเป็น -1062705820

เพื่อให้เขียน code แล้วได้ผลลัพธ์มากกว่า 0 เลยต้องเขียนว่า
$ip2= sprintf ('%u', ip2long($ip));

สำหรับการแปลงค่า integer กลับมาเป็น ip เราจะใช้
$ip = long2ip($ip2);

หากค่า ip2 เป็นลบ จะให้ค่าผิดพลาด
127.255.255.255

เพื่อให้ได้ ip ถูกต้อง แม้ค่าจะเป็นลบ เราเลยใช้ code นี้แทน
$ip = long2ip((int) (float) $ip2);
 
function get_ip() {
	$ip = $_SERVER['REMOTE_ADDR'];
	if ($ip=='::1') { $ip='127.0.0.1'; }
	return $ip;
}
function ip_2long($ip) {
	return sprintf ('%u', ip2long($ip));
}
function long_2ip($i1) {
	return long2ip((int) (float) $i1);
}


29 ก.ย. 63
© 2000 - 2024 palthai.com. All rights reserved.