Php phát hiện ipv4 hoặc ipv6
Nếu bạn cần phát hiện xem một địa chỉ IP (giả sử 192. 168. 0. 2) nằm trong một dải IP/mạng con nhất định (giả sử 192. 168. 0. 0/24), bạn có thể sử dụng đoạn mã sau trong PHP Show /** * Check IPv4 address is within a range * * @param string $ip A valid IPv4 address (xxx.xxx.xxx.xxx) * @param string $subnet A valid IPv4 subnet (xxx.xxx.xxx.xxx) * @param string $mask A valid IPv4 subnet mask (a number from 0-32) * @return boolean True if the address is within the range, false if it isn't */ function ip4_in_network($ip, $subnet, $mask) { if ($mask <= 0) { return false; } $ip_bin_string = sprintf("%032b", ip2long($ip)); $net_bin_string = sprintf("%032b", ip2long($subnet)); return (substr_compare($ip_bin_string, $net_bin_string, 0, $mask) === 0); }
/** * Check IPv6 address is within a range * * @param string $ip A valid IPv6 address * @param string $subnet A valid IPv6 subnet * @param string $mask A valid IPv6 subnet mask (a number from 0-128) * @return boolean True if the address is within the range, false if it isn't */ function ip6_in_network($ip, $subnet, $mask) { $subnet = inet_pton($subnet); $ip = inet_pton($ip); // thanks to MW on http://stackoverflow.com/questions/7951061/matching-ipv6-address-to-a-cidr-subnet $binMask = str_repeat("f", $mask / 4); switch ($mask % 4) { case 0: break; case 1: $binMask .= "8"; break; case 2: $binMask .= "c"; break; case 3: $binMask .= "e"; break; } $binMask = str_pad($binMask, 32, '0'); $binMask = pack("H*", $binMask); return ($ip & $binMask) == $subnet; } 000Thành viên nổi tiếng3 tháng 6 năm 2008 533 29 78 29 tháng 10 năm 2020
Xin chào, Mã số
cPanelChrisngười điều hànhThành viên đội ngũ nhân viên Ngày 16 tháng 2 năm 2020 38 6 8 Houston, 30 Tháng 10, 2020
Xin chào @000 , PHP
Mở rộng chữ ký Tài liệu. https. // tài liệu. cpanel. net/ 000Thành viên nổi tiếng3 tháng 6 năm 2008 533 29 78 30 Tháng 10, 2020
Cám ơn Chris rất nhiều cPanelChrisngười điều hànhThành viên đội ngũ nhân viên Ngày 16 tháng 2 năm 2020 38 6 8 Houston, 31 tháng 10 năm 2020
Xin chào @000 , nhà phát triển. mysql. com Mở rộng chữ ký Tài liệu. https. // tài liệu. cpanel. net/ 000Thành viên nổi tiếng3 tháng 6 năm 2008 533 29 78 31 tháng 10 năm 2020
cPanelChris nói Địa chỉ IP IPv6 có thể chứa tối đa 39 ký tự Bấm để mở rộng
Làm cách nào để kiểm tra xem IP là IPv4 hay IPv6 trong PHP?Bộ lọc FILTER_VALIDATE_IP xác thực địa chỉ IP. cờ có thể. FILTER_FLAG_IPV4 - Giá trị phải là địa chỉ IPv4 hợp lệ. FILTER_FLAG_IPV6 - Giá trị phải là địa chỉ IPv6 hợp lệ.
Làm cách nào để lấy địa chỉ IPv6 trong PHP?$ curl --help all .. --dns-interface
Làm thế nào bạn có thể biết sự khác biệt giữa IPv4 và IPv6?Địa chỉ IPv4 thường được biểu thị bằng ký hiệu dấu thập phân, bao gồm bốn số thập phân, mỗi số nằm trong khoảng từ 0 đến 255, được phân tách bằng dấu chấm. Một địa chỉ IPv6 được biểu diễn dưới dạng tám nhóm gồm bốn chữ số thập lục phân, mỗi nhóm biểu thị 16 bit. Việc phân mảnh chỉ được thực hiện bởi người gửi trong IPv6
Làm cách nào để chỉ nhận địa chỉ IPv4 trong PHP?Sử dụng hàm getenv(). Để lấy Địa chỉ IP, chúng ta sử dụng lệnh getenv(“REMOTE_ADDR”) . Hàm getenv() trong PHP được sử dụng để truy xuất các giá trị của biến môi trường trong PHP. |