首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php怎么得到本机的ip地址?O(∩_∩)O

2012-03-24 
php如何得到本机的ip地址??O(∩_∩)O~请问我用php命令执行php文件时,怎么得到本机的ip地址呢?原来通过$_SERV

php如何得到本机的ip地址??O(∩_∩)O~
请问我用php命令执行php文件时,怎么得到本机的ip地址呢?原来通过$_SERVER[]不好用了,先谢谢了O(∩_∩)O~

[解决办法]
如果你在自己电脑上运行的话无非就是 127.0.0.1
如果在虚拟空间或者服务器上运行的话就是 $_SERVER["SERVER_ADDR"]了
[解决办法]

PHP code
 
<?php
echo " <br>";
?>

<?php

function GetIP()
{
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
$cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))
$cip = $_SERVER["REMOTE_ADDR"];
else
$cip = "无法获取!";
return $cip;
}
echo " <br>";
?>

方法二:
<?php
echo " <br>";
?>

<?
error_reporting (E_ERROR | E_WARNING | E_PARSE);
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地址是:".$ip." <br>";             
?>


方法三(最简单):
<?php
echo " <br>";
?>

<?
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp;
echo " <br>";


?>

方法四:
<?php
echo " <br>";
?>

<?php
$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." <br>";
?>

方法五:
<?php
echo " <br>";
?>

<?
function get_real_ip()
{
  $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 get_real_ip();
echo " <br>";
?>

方法六:
<?php
echo " <br>";
?>

<?
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;
echo " <br>";
?>


[解决办法]
PHP code
<?php  /**   *返回浏览者的IP地址.   */ function fkip () {      if($_SERVER['HTTP_CLIENT_IP']){          $onlineip=$_SERVER['HTTP_CLIENT_IP'];      }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){          $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];      }else{          $onlineip=$_SERVER['REMOTE_ADDR'];      }      return $onlineip;  }  ?>
[解决办法]
调用本函数无需任何参数。示例如下:

<?php 
$ipaddr=fkip(); //调用函数,并将IP地址存入变量$ipaddr中
echo $ipaddr; //输出IP地址。
?>   如果在本机调试,输出的结果将是127.0.0.1。
[解决办法]
问一下,如何获得客户端MAC地址。

热点排行