您现在的位置是: 首页 > PHP PHP
获取客户端IP,内网IP,外网IP,IP验证
冬寂
2022-12-30 09:18:27
【PHP】
1531人已围观
//取客户端(浏览器)请求IP 2022年12月23日14:25:37
function get_client_ip()
{
// 首先尝试使用 Cloudflare 的库获取真实的 IP 地址
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];// 其次尝试使用 HTTP 头信息获取 IP 地址
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// 使用函数 is_ip 来验证 IP 地址的合法性
if (!is_ip($ip)) return 'IP未知';
return $ip;
}
//获取服务器外网IP 2022年12月23日14:26:38
function get_server_public_ip(){
$ip = '未知IP';
if(!empty($_SERVER['SERVER_NAME'])){
return gethostbyname($_SERVER['SERVER_NAME']);
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return is_ip($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $ip;
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return is_ip($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $ip;
} else {
return is_ip($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : $ip;
}
}
//获取服务器内网IP 2022年12月23日14:26:52
function get_server_private_ip() {
if (!empty($_SERVER['SERVER_ADDR'])) {
$ip = $_SERVER['SERVER_ADDR'];
} else {
$ip = gethostbyname(gethostname());
}
if (!is_ip($ip)) return 'IP未知';
return $ip;
}
//证IP是否合法(ipv4或ipv6) 2022年12月23日14:27:02
function is_ip($str) {
if (empty($str)) return false;
return preg_match('/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $str)
|| preg_match('/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/', $str);
}
上一篇: 三门换门概率问题
相关文章
随机图文
-
认真琢磨减肥这件事(一,认知与原动力)
第一, 减肥的动机,是为了健康,更是为了提高你的魅力,提高你的社会竞争力。第二, 减肥的实质,是改变生活方式,换一种新的人生。第三, 只有跟一群志同道合的人一起走,才能走得更远,最终减肥成功。 -
提问的智慧
提问的智慧 -
Typora全网最全教程
Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏 -
Elasticsearch原理讲透 典型应用ELK日志分析系统
反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。搜索引擎原理就是建立反向索引。Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。 Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。 Elasticsearch 一个典型应用就是 ELK 日志分析系统。