如何检测本地IP地址

时间:2015-09-16 11:24:07

标签: php

这是我的代码来检测我的系统IP地址

<?php

if ($_POST['login']) {

    $uname = $_POST['uname'];
    $pass = $_POST['pass'];

    $email = $_POST['email'];
    $phnoe = $_POST['phnoe'];
    $ipd = $_SERVER['REMOTE_ADDR'];

    if (mysql_query("Insert Into nennetwork (name, email, password, phone, useripp ) Values ('$uname', '$email', '$pass', '$phnoe', '$ipd' )"))
        $pdmsg = "New Member Added!!";
}

我的IP是192.168.7.16,但它提供的服务器地址如下    103.18.164.206 .. 我想要我的系统的IP 有可能???

2 个答案:

答案 0 :(得分:2)

使用$_SERVER['SERVER_ADDR'];

  

$_SERVER是一个包含标题,路径和脚本位置等信息的数组。此阵列中的条目由Web服务器创建。无法保证每个Web服务器都能提供这些服务;服务器可以省略一些,或提供此处未列出的其他服务器。也就是说,在»CGI / 1.1规范中考虑了大量这些变量,因此您应该能够期待这些变量。

额外知识

  1. $_SERVER['HTTP_HOST'] - 提供http://192.168.0.1/index.php
  2. $_SERVER['SERVER_NAME'] - 提供www.example.com
  3. $_SERVER['SERVER_ADDR'] - 提供127.0.0.1
  4. $_SERVER['REMOTE_ADDR'] - 也提供127.0.0.1
  5. 编辑01

    $ipAddress = $_SERVER['REMOTE_ADDR'];
    if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
        $ipAddress = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
    }
    

答案 1 :(得分:1)

因为您的网页似乎托管在互联网网络上(例如服务器的IP为2.178.x.x)。在这种情况下,我可以说你不能

Web服务器无法访问用户网络内部。例如,你有一个wifi调制解调器和3人连接。网络服务器只能看到你的外部(互联网)IP地址而不是内部(在wifi网络中,如192.168.x.x

所以答案是:你不能。