好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php获取ip变量 php获取域名ip

很多站长朋友们都不太清楚php获取ip变量,今天小编就来给大家整理php获取ip变量,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何获取客户端真实IP 2、 PHP怎么获取当前电脑的IP? 3、 如何获取PHP客户端及服务器端IP了? 4、 如何使用php获取本机IP地址 5、 利用php怎么获取用户ip PHP如何获取客户端真实IP

.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。 下面提供一个函数:<?php // 定义一个函数getIP() function getIP(){global $ip; if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");else$ip = "Unknow"; return $ip;} // 使用方法: echo getIP();?> getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。 但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。 else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。 如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。 这种情况下已经确认客户端没有使用代理服务器,从而通过 else if(getenv("REMOTE_ADDR")) 这两行语句获得客户端的IP地址也是真实的IP地址。

PHP怎么获取当前电脑的IP?

本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名、及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值。完整代码如下:

<?php

$bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP

echo "本机IP:",$bIp,"\n";

echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函数可以根据局域网IP获取主机名

//默认网关IP

list($ipd1,$ipd2,$ipd3) = explode('.',$bIp);

$mask = $ipd1 . "." . $ipd2 . "." . $ipd3 ;

exec('arp -a',$aIp); //获取局域网中的其他IP

foreach( $aIp as $ipv) {

if(strpos($ipv,'接口') !== false) {//一下显示的IP是否是当前局域网中的 而不是其他的类型 可以在cmd下试一下命令

$bool = false;

preg_match('/(?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/',$ipv,$arr);

if(strcmp($arr[0],$bIp) == 0) {

$bool = true;

}

} else {

if($bool) {

$str = preg_replace('/\s+/', '|', $ipv);

$sArr = explode('|',$str);

if($sArr[1] == 'Internet' || empty($sArr[1])) {

continue;

}

//去除默认网关

if(strcmp($mask . ".1", $sArr[1]) == 0) {

continue;

}

//去除同网关下255的IP

if(strcmp($mask . ".255", $sArr[1]) == 0) {

continue;

}

//去除组播IP

list($cIp) = explode('.', $sArr[1]);

if($cIp >= 224 $cIp <= 239) {

continue;

}

echo "IP地址:|",$sArr[1],"|\n";

echo "MAC地址:",$sArr[2],"\n";

echo "主机名:",gethostbyaddr($sArr[1]),"\n";

echo "\n\n";

}

}

}

如何获取PHP客户端及服务器端IP了?

客户端的ip变量:

$_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP

$_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造

$_SERVER['HTTP_X_FORWARD_FOR'] :用户在哪个ip上使用的id,可能存在,也可能伪造

服务端的ip变量:

$_SERVER['SERVER_NAME'] :需要使用函数gethostname()来获得,这个无论是服务器端还是客户端都能正常显示。

$_SERVER['SERVER_ADDR']:服务器端的ip地址,在服务器端测试ip地址,在客户端测试正常

getnev 获得系统的环境变量:

如何使用php获取本机IP地址

function ip() {

if(getenv('HTTP_CLIENT_IP') strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {

$ip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR') strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {

$ip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR') strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {

$ip = getenv('REMOTE_ADDR');

} elseif(isset($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {

$ip = $_SERVER['REMOTE_ADDR'];

}

return preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';

}

以上函数取自phpcms的获取ip方法

利用php怎么获取用户ip

<?php                                                                 //方法1:

$ip = $_SERVER["REMOTE_ADDR"];

echo $ip;

 

//方法2:

$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];

$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

echo $user_IP;

 

//方法3:

function getRealIp()

{

  $ip=false;

  if(!empty($_SERVER["HTTP_CLIENT_IP"])){

    $ip = $_SERVER["HTTP_CLIENT_IP"];

  }

  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

    for ($i = 0; $i < count($ips); $i++) {

      if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

        $ip = $ips[$i];

        break;

      }

    }

  }

  return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

echo getRealIp();

 

//方法4:

if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])

{

  $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];

}

elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])

{

  $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];

}

elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])

{

  $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];

}

elseif (getenv("HTTP_X_FORWARDED_FOR"))

{

  $ip = getenv("HTTP_X_FORWARDED_FOR");

}

elseif (getenv("HTTP_CLIENT_IP"))

{

  $ip = getenv("HTTP_CLIENT_IP");

}

elseif (getenv("REMOTE_ADDR"))

{

  $ip = getenv("REMOTE_ADDR");

}

else

{

  $ip = "Unknown";

}

echo $ip ;

 

//方法5:

if(getenv('HTTP_CLIENT_IP')) {

  $onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

  $onlineip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

  $onlineip = getenv('REMOTE_ADDR');

} else {

  $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

}

echo $onlineip;

关于php获取ip变量的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php获取ip变量 php获取域名ip的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did209213
更新时间:2023-05-03   阅读:19次

上一篇: php技术薪酬学习 php技术支持工程师招聘

下一篇:php运行代码 php运行代码是哪个

最新资料更新

  • 1.phpisset多个值 php __set __get
  • 2.php的token请求 php简单的token验证
  • 3.php求数组的交集 php数组处理函数
  • 4.图片二进制php 图片二进制转换器
  • 5.无法下载file.php 无法下载filedownload
  • 6.csrfphp防的简单介绍
  • 7.网页识别不了php文件 php网页无法显示
  • 8.包含php7.0.10的词条
  • 9.jq读取php变量 php读取html内容
  • 10.redis缓存类php php redis页面缓存
  • 11.有哪些php社区 phpbbs
  • 12.php翻译sdk php翻译成中文是什么意思
  • 13.php判断是否为蜘蛛 php怎么判断是不是数字
  • 14.包含peintphp的词条
  • 15.notepad写php notepad可以写c语言吗
  • 16.PHP外部引用样式 php引用外部文件
  • 17.iconv函数php iconv函数参数
  • 18.php单个会话内存 php会话保存数据的两种方式是
  • 19.iisphpma的简单介绍
  • 20.php项目基本流程 php项目如何运行

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]