你运行
<? phpinfo(); ?>
看看里面,里面有你要的东西。

解决方案 »

  1.   

    我说的是取得访问者的网卡上物理IP。比如局域网内的192.168.0.1这个IP,我现在能取到我机子上的IP,有什么办法到访问者的IP吗($_SERVER["REMOTE_ADDR"]取的是代理的IP,也就是外网的IP),大家明白我的意思了吗?
      

  2.   

    得到真是ip
    1
    ----------------------
    function getip() { 
       $IP=getenv('REMOTE_ADDR'); 
       $IP_ = getenv('HTTP_X_FORWARDED_FOR'); 
       if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_; 
       return $IP; 
    }2
    ------------
    Author: iwind @ 2004-01-03 21 Weather: 晴 Comments( 0 )
    function PMA_getIp()
    {
    global $REMOTE_ADDR;
    global $HTTP_X_FORWARDED_FOR, $HTTP_X_FORWARDED, $HTTP_FORWARDED_FOR, $HTTP_FORWARDED;
    global $HTTP_VIA, $HTTP_X_COMING_FROM, $HTTP_COMING_FROM;// Get some server/environment variables values
    if (empty($REMOTE_ADDR)) {
    if (!empty($_SERVER) && isset($_SERVER['REMOTE_ADDR'])) {
    $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
    }
    else if (!empty($_ENV) && isset($_ENV['REMOTE_ADDR'])) {
    $REMOTE_ADDR = $_ENV['REMOTE_ADDR'];
    }
    else if (@getenv('REMOTE_ADDR')) {
    $REMOTE_ADDR = getenv('REMOTE_ADDR');
    }
    } // end if
    if (empty($HTTP_X_FORWARDED_FOR)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $HTTP_X_FORWARDED_FOR = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED_FOR'])) {
    $HTTP_X_FORWARDED_FOR = $_ENV['HTTP_X_FORWARDED_FOR'];
    }
    else if (@getenv('HTTP_X_FORWARDED_FOR')) {
    $HTTP_X_FORWARDED_FOR = getenv('HTTP_X_FORWARDED_FOR');
    }
    } // end if
    if (empty($HTTP_X_FORWARDED)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED'])) {
    $HTTP_X_FORWARDED = $_SERVER['HTTP_X_FORWARDED'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED'])) {
    $HTTP_X_FORWARDED = $_ENV['HTTP_X_FORWARDED'];
    }
    else if (@getenv('HTTP_X_FORWARDED')) {
    $HTTP_X_FORWARDED = getenv('HTTP_X_FORWARDED');
    }
    } // end if
    if (empty($HTTP_FORWARDED_FOR)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED_FOR'])) {
    $HTTP_FORWARDED_FOR = $_SERVER['HTTP_FORWARDED_FOR'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED_FOR'])) {
    $HTTP_FORWARDED_FOR = $_ENV['HTTP_FORWARDED_FOR'];
    }
    else if (@getenv('HTTP_FORWARDED_FOR')) {
    $HTTP_FORWARDED_FOR = getenv('HTTP_FORWARDED_FOR');
    }
    } // end if
    if (empty($HTTP_FORWARDED)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED'])) {
    $HTTP_FORWARDED = $_SERVER['HTTP_FORWARDED'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED'])) {
    $HTTP_FORWARDED = $_ENV['HTTP_FORWARDED'];
    }
    else if (@getenv('HTTP_FORWARDED')) {
    $HTTP_FORWARDED = getenv('HTTP_FORWARDED');
    }
    } // end if
    if (empty($HTTP_VIA)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_VIA'])) {
    $HTTP_VIA = $_SERVER['HTTP_VIA'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_VIA'])) {
    $HTTP_VIA = $_ENV['HTTP_VIA'];
    }
    else if (@getenv('HTTP_VIA')) {
    $HTTP_VIA = getenv('HTTP_VIA');
    }
    } // end if
    if (empty($HTTP_X_COMING_FROM)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_X_COMING_FROM'])) {
    $HTTP_X_COMING_FROM = $_SERVER['HTTP_X_COMING_FROM'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_X_COMING_FROM'])) {
    $HTTP_X_COMING_FROM = $_ENV['HTTP_X_COMING_FROM'];
    }
    else if (@getenv('HTTP_X_COMING_FROM')) {
    $HTTP_X_COMING_FROM = getenv('HTTP_X_COMING_FROM');
    }
    } // end if
    if (empty($HTTP_COMING_FROM)) {
    if (!empty($_SERVER) && isset($_SERVER['HTTP_COMING_FROM'])) {
    $HTTP_COMING_FROM = $_SERVER['HTTP_COMING_FROM'];
    }
    else if (!empty($_ENV) && isset($_ENV['HTTP_COMING_FROM'])) {
    $HTTP_COMING_FROM = $_ENV['HTTP_COMING_FROM'];
    }
    else if (@getenv('HTTP_COMING_FROM')) {
    $HTTP_COMING_FROM = getenv('HTTP_COMING_FROM');
    }
    } // end if// Gets the default ip sent by the user
    if (!empty($REMOTE_ADDR)) {
    $direct_ip = $REMOTE_ADDR;
    }// Gets the proxy ip sent by the user
    $proxy_ip = '';
    if (!empty($HTTP_X_FORWARDED_FOR)) {
    $proxy_ip = $HTTP_X_FORWARDED_FOR;
    } else if (!empty($HTTP_X_FORWARDED)) {
    $proxy_ip = $HTTP_X_FORWARDED;
    } else if (!empty($HTTP_FORWARDED_FOR)) {
    $proxy_ip = $HTTP_FORWARDED_FOR;
    } else if (!empty($HTTP_FORWARDED)) {
    $proxy_ip = $HTTP_FORWARDED;
    } else if (!empty($HTTP_VIA)) {
    $proxy_ip = $HTTP_VIA;
    } else if (!empty($HTTP_X_COMING_FROM)) {
    $proxy_ip = $HTTP_X_COMING_FROM;
    } else if (!empty($HTTP_COMING_FROM)) {
    $proxy_ip = $HTTP_COMING_FROM;
    } // end if... else if...// Returns the true IP if it has been found, else FALSE
    if (empty($proxy_ip)) {
    // True IP without proxy
    return $direct_ip;
    } else {
    $is_ip = preg_match('|^([0-9]{1,3}.){3,3}[0-9]{1,3}|', $proxy_ip, $regs);
    if ($is_ip && (count($regs) > 0)) {
    // True IP behind a proxy
    return $regs[0];
    } else {
    // Can't define IP: there is a proxy but we don't have
    // information about the true IP
    return FALSE;
    }
    } // end if... else...
    } // end of the 'PMA_getIp()' function
     
    机器名
    <?php
    echo $_ENV["COMPUTERNAME"];
    ?>
      

  3.   

    看phpinfo()最实际,想什么找找看没有的话就是没有了。
      

  4.   

    给大家一段代码做参考(只能取到服务器上的IP,不能取访问者的)
    <?php
    //网卡号是指什么?
    //这是获取服务端网卡的MAC地址,希望对你有帮助echo "/********************************************";
    echo "<br>";
    @exec("ipconfig /all",$array);
    for($Tmpa;$Tmpa<count($array);$Tmpa++){
    if(eregi("Host",$array[$Tmpa])){
    $getstr=explode(":",$array[$Tmpa]);
    echo "Host Name:".$getstr[1];
    echo "<br>";
    }
    if(eregi("Physical",$array[$Tmpa])){
    $getstr=explode(":",$array[$Tmpa]);
    echo "Netcar MAC Address:".$getstr[1];
    echo "<br>";
    }
    if(eregi("IP Address",$array[$Tmpa])){
    $getstr=explode(":",$array[$Tmpa]);
    echo "IP Address:".$getstr[1];
    echo "<br>";
    }
    if(eregi("Subnet Mask",$array[$Tmpa])){
    $getstr=explode(":",$array[$Tmpa]);
    echo "IP Address:".$getstr[1];
    }}
    echo "<br>";
    echo "*******************************************/";?>
      

  5.   

    phpinfo()算了,这么麻烦,还是学习一下
      

  6.   

    说phpinfo()的不知道看没看清楚,phpinfo()相当于一个探针,所显示的都是服务器端的内容,而且显示的也不准确,比如IP显示为:127.0.0.1,主机名显示为:localhost,这些都是在apache里设置的,并不是真正的物理地址大家看清楚了,我要显示的是来访问者,即客户端的物理地址。
    明白了没有???
      

  7.   

    127.0.0.1 表示当前的机器,任何机器都可用127.0.0.1访问自己形如192.168.0.1的ip是内部ip,互联网组织保证其不会出现在公网上,当然你若设置代理或防火墙也可使其出现在公网上。但是有什么意义呢?你的局域网中有192.168.0.1,我的局域网中也有192.168.0.1。我访问192.168.0.1只是我的,并不能访问到你的!
      

  8.   

    echo $REMOTE_ADDR//取得客户端Ip
    如果用HTTP_X_FORWARDED_FOR参数可能跨过代理取得对方的真实的IP,但不是绝对。
    取得IP后用其它方法(工具)才有可能知道对方机器名
    这里说取得的跨过代理的IP依然是外网的
    楼主要内网IP干什么?没有用的,一般外网是不可能跨过网关访问内网的(相信不会有那么弱智的内网吧……)
      

  9.   

    长久没有解决是因为不能解决
    即使不用php用应用程序也很难获得某个ip的mac地址,局域网内可以获取,因为要靠mac地址来通讯,至于外网的tcp/ip协议通讯中,根本不会发送mac地址,就是说浏览器向服务器发送请求的数据包里没有mac地址,所以php得不到。
    要得到mac地址还是用有关工具扫描。
    web体系的控制客户端的能力是微弱的,不要让它做它不擅长的事情,术业有专攻,不同类型的程序也一样,要想更好的控制客户端考虑用c/s结构吧,这个没有强求的,办不到就是办不到一般共享上网者用的是NAT的路由模式,内网真实的IP已经被转化了,而且这个转化是只有路由器知道,所以要得到它的真实IP不太可能。
    如果要区分相同IP是否是多个客户端可以用客户端的端口来判断,如果他们端口不同则说明不是一个客户端。
    也许上面有不对的地方,就当一浅见